我正在尝试在Excel中绘制图表,这是我的代码
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range("'ResultHL'!$E:$E")
ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Values = "='ResultHL'!$CB$1:$CB$2520"
这工作正常,但我不知道我是否可以为某些变量指定列名或数字,并在上面的代码中使用它。
第2行 - > ActiveChart.SetSourceData Source:=Range("'ResultHL'!$E:$E")
我需要将E分配给变量并使用它
同样在第5行,我需要使用整数变量而不是2520
我该怎么做?
答案 0 :(得分:3)
我发现使用Cells
和/或Resize
属性比在所有这些混乱的字符串连接业务中陷入困境要容易得多。
示例:
Dim rngApples As Range
Dim shtResults As Worksheet
Dim lngMaxRow As Long
shtResults = Worksheets("Sheet1")
' Define the range you want to plot
lngMaxRow = 2520
rngApples = shtResults.Range("CB1").Resize(lngMaxRow, 1)
ActiveChart.SeriesCollection(2).Values = rngApples
或者,您可以按如下方式定义范围:
lngColNum = 56 ' or whatever CB is
lngMaxRow = 2520
rngApples = shtResults.Range(Cells(1, lngColNum), Cells(lngMaxRow, lngColNum))
答案 1 :(得分:1)
细胞与细胞范围说明符只是字符串,因此您可以使用字符串或数字对它们进行连接,以引用所需的单元格。
For example:
ActiveChart.SetSourceData Source:=Range("'ResultHL'!$E:$E")
Could become
ActiveChart.SetSourceData Source:=Range("'ResultHL'!$" & ColumnName & ":$" & ColumnName)
Where ColumnName is the string value of the column you wish to use.
和
ActiveChart.SeriesCollection(2).Values = "='ResultHL'!$CB$1:$CB$2520"
Could become
ActiveChart.SeriesCollection(2).Values = "='ResultHL'!$CB$1:$CB$" & MaxRowNumber