我试图修改现有的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替换它,结果是相同的。
我做错了什么?
干杯
彼得
发布于 2013-07-23 15:08:17
LastRow = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
和
LastRow = ActiveSheet.UsedRange.Rows.Count
是一样的。
就实际错误而言,在运行代码时,似乎没有活动图表对象。因此,ActiveChart.返回一个对象错误。
试试这个:
Dim LastRow As Integer
LastRow = ActiveSheet.UsedRange.Rows.Count
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Sheets("Log-Data").Range(Cells(12, 2), Cells(LastRow, 2)), PlotBy:=xlColumns发布于 2014-08-21 06:30:55
我尝试了以下操作,它可以工作(在单元格单词之前添加一个句点)
Dim LastRow As Integer
LastRow = ActiveSheet.UsedRange.Rows.Count
With Sheets("Log-Data")
Set Myrange = .Range(.Cells(12, 2), .Cells(LastRow, 2))
End With
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Myrange, PlotBy:=xlColumns发布于 2014-02-24 16:15:18
试一试,让我知道
Dim LastRow As Integer
LastRow = ActiveSheet.UsedRange.Rows.Count
With Sheets("Log-Data")
Set Myrange = .Range(Cells(12, 2), Cells(LastRow, 2))
End With
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Myrange, PlotBy:=xlColumnshttps://stackoverflow.com/questions/15838191
复制相似问题