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你的RowString
variables
RowString = "E" & weekNumber & ":"
和整个声明
.SetSourceData objWorksheet.Range(Rowstring & "F" & LastRow), xlColumns ' PlotBy:=xlColumns for VBA