VBS for excel:在范围select中使用脚本variables

我已经看到类似的问题要求在Excel中使用VBA,但我使用VBScript,所以它有点不同。 其他问题的答案给了我一些线索,但我不知道如何解决这个问题。

我正在使用.SetSourceData来定义graphics中使用的范围。 它可以很好地定义从第一行到最后一行(整张)的范围,但是我想使用前面定义的variables定义一个dynamic范围。 所以这个工作:

.SetSourceData objWorksheet.Range("E1","F" & LastRow), xlColumns 

LastRow被定义为LastRow=objWorksheet.UsedRange.Rows.Count 。 现在我想要做的是使用从最后一行开始的范围,返回几行。 所以我的想法是这样做的:

 .SetSourceData objWorksheet.Range(Rowstring,"F" & LastRow), xlColumns 

RowString被定义为

 WeekNumber = LastRow - 1000 RowString = "E" & WeekNumber 

但它给了我一个错误。 如何在一个范围内使用stringvariables,并将其设置为图表生成的源数据? 这是我正在使用的代码

  WeekNumber = LastRow - 1000 RowString = "E" & WeekNumber WScript.echo(RowString) ' Data for last week Sub LastWeek() WeekNumber = LastRow - 1000 RowNumber = LastRow - WeekNumber RowString = "E" & RowNumber End Sub myrange = "E1:E52" Set Range1 = objWorksheet.Range(myrange) ' Define chart properties Set objChart = objExcel.Charts.Add() With objChart 'define chart type .ChartType = xlXYScatterLinesNoMarkers 'format chart .SeriesCollection(1).Border.Color = RGB(255, 0, 0) REM .ChartArea.Color = RGB(255, 255, 255) .PlotArea.Interior.Color = RGB(255, 255, 255) .HasTitle = True .ChartTitle.Text = "usage" .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Time" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "test" .HasLegend = False 'define data .SetSourceData objWorksheet.Range(RowString,"F" & LastRow), xlColumns .Export "Test.png", "PNG" End With 

先谢谢你

 .SetSourceData objWorksheet.Range(Rowstring,"F" & LastRow), xlColumns 

哪里

 WeekNumber = LastRow - 1000 RowString = "E" & WeekNumber 

 ...Range("E4414","F" & LastRow)... 

而且我认为你很可能在之后

 ...Range("E4414:F" & LastRow)... 

所以你需要用: 分号replace逗号

像这样重build你的RowStringvariables

 RowString = "E" & weekNumber & ":" 

和整个声明

 .SetSourceData objWorksheet.Range(Rowstring & "F" & LastRow), xlColumns ' PlotBy:=xlColumns for VBA