我已发现解决方案,为引用一个整行/列或表(e.g. The VBA Guide To ListObject Excel Tables)范围内的单细胞,但不是在特定的范围的一部分。仅作参考Excel表格数据本体范围带VBA
示例:Table1的DataBodyRange是3列和10行,我需要在每列中绘制4-10行的数据(以编程方式绘制,因为表是动态的,我希望能够重新绘制如果列被添加/移除,则情节)。
我希望的语法是这样的
Sub reDrawChart()
Set sourcedata = ActiveSheet.ListObjects("Table1")
Set cht = Worksheets("Sheet1").ChartObjects(1).Chart
'Delete existing series
cht.ChartArea.ClearContents
'Add new series
With cht.SeriesCollection.NewSeries
For i = 1 To nColumns
.Name = sourcedata.HeaderRowRange(i)
.Values = sourcedata.DataBodyRange(4:10, i) '<-- Touble spot
Next i
End With
End Sub
但这不起作用。有没有办法做我想用这一行做什么?我应该解决它并寻求不同的解决方案吗?
我也想避免使用。因为在Mac OS上感觉就像任何使VBA口吃的代码有50/50的机会崩溃到桌面。