我试图修改一个现有的VBA代码(Excel),使图表图形,并使其更加灵活。
我知道下面的代码基本上做同样的事情:
Range(Cells(12, 2), Cells(15, 2)).Select
或多或少等同于:
Range("B12:B15").Select
我的目标是有一个Graph,它表示灵活的行数。
所以我改变了现有的代码:
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来代替它,我会得到同样的结果。
我哪里做错了?
干杯
彼得
4条答案
按热度按时间v09wglhw1#
工作表(“日志-数据”)。激活
LastRow =活动工作表.已用范围.行(活动工作表.已用范围.行.计数).行
ActiveChart.设置源数据源:=工作表(“Log-Data”).范围(单元格(12,2),单元格(最后一行,2)),绘图依据:=xlColumns
工作表(“名称_CHEET_图表”)。激活
uklbhaso2#
LastRow = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
以及
LastRow = ActiveSheet.UsedRange.Rows.Count
都是一样的。
至于实际的错误,在代码运行时看起来好像没有活动的图表对象,所以
ActiveChart.
返回一个对象错误。试试这个:
u4dcyp6a3#
我尝试了下面的方法,它起作用了(在Cells单词前加一个句号)
tzxcd3kk4#
试试下面的,让我知道