2011-02-19 54 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请允许我欢迎你们来的StackOverflow,并提醒三件事,我们通常在这里做的:1)当你得到帮助,尽量给它太**回答问题**在你的专业知识领域2)[`阅读常见问题`](http://tinyurl.com/2vycnvr)3)当你看到好的问答时,给他们投票[`使用灰色三角形](http:/ /i.imgur.com/kygEP.png),因为系统的可信度基于用户通过分享知识获得的声誉。另外请记住接受更好地解决您的问题的答案,如果有的话[按'checkmark sign`](http://i.imgur.com/uqJeW.png) – 2011-02-19 03:13:14

回答

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!