【发布时间】:2013-03-28 02:53:02
【问题描述】:
我正在尝试修改现有的 VBA 代码 (Excel),它可以制作图表,并使其更加灵活。
我知道以下几段代码的作用基本相同:
Range(Cells(12, 2), Cells(15, 2)).Select
或多或少等同于:
Range("B12:B15").Select
我的目标是有一个图表,它表示灵活的行数。
所以我改变了现有的代码:
ActiveChart.SetSourceData Source:=Sheets("Log-Data").Range("B12:B200"), PlotBy:=xlColumns
到
Dim LastRow As Integer
LastRow = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
ActiveChart.SetSourceData Source:=Sheets("Log-Data").Range(Cells(12, 2), Cells(LastRow, 2)), PlotBy:=xlColumns
现在,每当我执行代码时,我都会收到:
运行时错误“1004”:应用程序定义或对象定义错误
LastRow 变量不是问题:如果我将其替换为 200,我会得到相同的结果。
我做错了什么?
干杯
彼得
【问题讨论】:
-
无论何时使用
sheetname.Range(Cells(a,b), Cells(a2,b2)),您都应该始终使用工作表引用来限定每个Cells():否则,Cells()将始终引用 ActiveSheet,这可能不是您想要的。
标签: excel charts runtime-error office-2007 vba