图表数据源variables在Excel中用VBA

我正在使用Excel 2007 VBA在同一数据表中创build一个ScatterSmoothNoMarkerstypes图表。 我的源数据取决于许多打开的文本文件。 Xvalue是fixed @ location A2:A200。 系列值列的ID将被改变。

如果我打开2文件,我的源数据将是: Range(A2:A200, F2:G200) 。 要打开3文件,我的源数据将是: Range(A2:A200, H2:J200)等等…所以我需要用variablesreplace列的ID。 但是当我设置数据源时,出现错误。 这是我的代码:

 Sub addChart() Dim n as integer 'files count and also the number of columns for chart1 Dim intColStart, intColStop as integer 'number of columns for chart 1 intColStart = n*2+2 'this is a formula to find the ID of the start column of chart1 intColStop = n*3+1 'this is a formula to find the ID of the stop column of chart1 ….. With ActiveSheet.ChartObjects.Add _ (Left:=100, Width:=375, Top:=75, Height:=225) .Chart.SetSourceData Source:=Sheets("Sheet1").Range("A2:A200, intColStart:intColStop ") '''''PROBLEM RIGHT HERE''''''' .Chart.ChartType = xlXYScatterSmoothNoMarkers …….. End With End Sub 

任何帮助都感激不尽。

你不能引用"标记内的variables" VBA不知道如何转换它们,所以它认为你正在设置一个Range包括你正在尝试使用的文本

 A2:A200, intColStart:intColStop 

这对VBA没有任何意义。

为什么不换线

  .Chart.SetSourceData Source:=Sheets("Sheet1").Range("A2:A200, intColStart:intColStop ") 

  .Chart.SetSourceData Source:=Sheets("Sheet1").Range(Cells(2,2), Cells(200,intColStop)) 

如果我误解你的兴趣,我会build议你手动创buildRange Stringinput的东西 – 使用如下所示:

 dim rngStr as String dim firstColStr as String dim secondColStr as String firstColStr = ColumnLetter(intColStart) secondColStr = ColumnLetter(intColStop) rngStr = "A2:A200," & firstColStr & ":2:" & secondColStr & "200" ... .Chart.SetSourceData Source:=Sheets("Sheet1").Range(rngStr) 

这个答案定义了我ColumnLetter的函数ColumnLetter (它从索引获得的字母)。