【问题标题】:Excel VBA Charts -> range select using "Cells" in within ChartsExcel VBA图表->在图表中使用“单元格”进行范围选择
【发布时间】: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


【解决方案1】:

我尝试了以下方法,它可以工作(在 Cells 单词之前添加一个句点)

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

【讨论】:

    【解决方案2】:

    试试下面告诉我

    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
    

    【讨论】:

      【解决方案3】:

      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
      

      【讨论】:

        猜你喜欢
        • 2023-03-30
        • 2012-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多