2011-02-19 2 views
1

그래서이 질문은 아마도 매우 어리 석고 Excel VBA에 익숙하지 않습니다. 다음은 텍스트 파일에서 데이터를 가져와 그래프로 작성한 내 생성 된 매크로 코드입니다.Excel Visual Basic 매크로 - 차트에 대해 데이터를 동적으로 선택합니까?

Sub getData() 
' 
' getData Macro 
' 

' 
With ActiveSheet.QueryTables.Add(Connection:= _ 
    "TEXT;C:\data.txt", Destination:=Range("$D$3")) 
    .Name = "data_2" 
    .FieldNames = True 
    .RowNumbers = False 
    .FillAdjacentFormulas = False 
    .PreserveFormatting = True 
    .RefreshOnFileOpen = False 
    .RefreshStyle = xlInsertDeleteCells 
    .SavePassword = False 
    .SaveData = True 
    .AdjustColumnWidth = True 
    .RefreshPeriod = 0 
    .TextFilePromptOnRefresh = False 
    .TextFilePlatform = 437 
    .TextFileStartRow = 1 
    .TextFileParseType = xlDelimited 
    .TextFileTextQualifier = xlTextQualifierDoubleQuote 
    .TextFileConsecutiveDelimiter = False 
    .TextFileTabDelimiter = False 
    .TextFileSemicolonDelimiter = False 
    .TextFileCommaDelimiter = True 
    .TextFileSpaceDelimiter = False 
    .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1) 
    .TextFileTrailingMinusNumbers = True 
    .Refresh BackgroundQuery:=False 
End With 
Range("D3:H4").Select 
ActiveSheet.Shapes.AddChart.Select 
ActiveChart.ChartType = xlXYScatter 
ActiveChart.SetSourceData Source:=Range("Sheet1!$D$3:$H$4") 
End Sub 

data.txt에서 입력 한 데이터의 길이가 임의이므로이 프로그램이 작동하지 않습니다. 그것은 단지 D3 : H3에서 시작됩니다. 차트에서 D3에서 HX로 데이터를 사용하고 싶습니다. 여기서 X는 데이터 행의 끝입니다. 어떻게하면 좋을까요? 도와 주셔서 감사합니다 바보!

+0

이 user623976 나에 유래에 당신을 환영하고 우리가 일반적으로 여기에서 세 가지를 생각 나게 할 수 있도록 허용 @ "오프셋 동적 범위를 엑셀"에 대한 구글 ** 전문 분야에서 2) ['FAQ 읽기'] (http://tinyurl.com/2vycnvr) 3) 좋은 Q & A를 볼 때 [회색 삼각형을 사용하여] 투표하십시오 (http : /i.imgur.com/kygEP.png) 시스템의 신뢰성은 사용자가 자신의 지식을 공유함으로써 얻을 수있는 평판에 달려 있기 때문입니다. 또한 문제가있는 경우 문제를 해결하는 답을 수락하는 것을 잊지 마십시오 ('체크 표시를 누르십시오') (http://i.imgur.com/uqJeW.png) –

답변

0

은 아마 다음과 같은 작동합니다 :

Sub getData() 
With ... 
    .... 
End With 
LastRowColH = Range("H65536").End(xlUp).Row 
ActiveSheet.Shapes.AddChart.Select 
ActiveChart.ChartType = xlXYScatter 
ActiveChart.SetSourceData Source:=Range("Sheet1!$D$3:$H$" & CStr(LastRowColH)) 
End Sub 

HTH를!

0

이 덤불에는 = OFFSET()을 사용하여 명명 된 범위를 사용하고 싶습니다. ** 질문에 대답하면 도움을받을로서 1), 너무 그것을 제공하려고 :
http://www.ozgrid.com/Excel/DynamicRanges.htm를 참조하거나