无法参考

时间:2019-04-23 23:13:55

标签: excel vba

由于某些原因,我尝试使用此代码时会不断收到错误消息

Set chtObj = ActiveWorkbook.Sheet2.ChartObjects.Add(Range("D3:M20").Left, Range("D3:M20").Top, Range("D3:M20").Width, Range("D3:M20").Height)

2 个答案:

答案 0 :(得分:0)

最好使用With编写,以确保您的范围不会默认为其他工作表:

With Sheet2.Range("D3:M20")
    Set chtObj = .Parent.ChartObjects.Add(.Left, .Top, _
                                          .Width, .Height)
End With

您可能需要调整工作表引用(具体取决于您遇到的错误)。

答案 1 :(得分:0)

您得到的错误到底是什么? Set语句必须在过程内声明。

我很快尝试了一下,下面的代码完全没有问题。

Sub foo()
Dim chtObj As ChartObject
Set chtObj = Worksheets("Sheet2").ChartObjects.Add(Range("D3:M20").Left, Range("D3:M20").Top, Range("D3:M20").Width, Range("D3:M20").Height)
End Sub