Excel的VBA图表 - >范围选择在图表
问题描述:
中我试图修改现有VBA代码(EXCEL),使图表显示了使用“单元格”,并使其更加灵活。Excel的VBA图表 - >范围选择在图表
我知道下面的代码片段基本上做同样的事情:
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
我在做什么错更换呢?
干杯
彼得
答
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
答
尝试,让我知道
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
答
我尝试了以下内容和它的作品(前加入细胞字一期)
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
Whenver你使用'sheetname.Range(细胞(A,b),细胞(A2,B2))'你应该总是限定每个'细胞()'用个e表单引用:否则,'Cells()'将始终引用ActiveSheet,这可能不是你想要的。 – 2013-04-05 16:31:46