简单范围语句不起作用。应用程序定义或对象定义错误

时间:2015-01-01 15:12:59

标签: vba excel-vba excel

我无法理解为什么我的简单代码不起作用。我所要做的就是使用我自己的范围变量插入图表,因为我记得代码应该运行但我得到一个1004错误:应用程序定义或对象定义错误。

可能是什么问题?

编辑:更改wRange对象的启动以使其合格。错误仍然在发生

代码 编辑:在所有评论之后更新了代码

Private Sub tester()

    Dim wSheet As Worksheet: Set wSheet = ThisWorkbook.Worksheets("MainWindow")
    Dim wShape As Shape
    Dim wRange As Range: Set wRange = wSheet.Range("A26")

    Set wShape = wSheet.Shapes.AddChart2(201, xlColumnClustered, wSheet.Range(wRange).Left, wSheet.Range(wRange).Top, _
         wSheet.Range(wRange, wRange.Offset(0, 20)).Width, wSheet.Range(wRange, wRange.Offset(19, 0)).Height)

'Original code that I'm trying to modify, this one works without errors in a classmodule
'    Set wshape = wst.Shapes.AddChart2(201, xlColumnClustered, wst.Range("A26").Left, wst.Range("A26").Top, _
'    wst.Range("A26:U26").Width, wst.Range("A26:A45").Height)

End Sub

1 个答案:

答案 0 :(得分:2)

我建议使用良好的编程习惯并在上下文中使用代码:

Dim wSheet As Worksheet: Set wSheet = ThisWorkbook.WorkSheets("SheetName")
Dim wRange As Range: Set wRange = wSheet.Range("A26")

请参阅:Range Object

<强> [编辑]

@uncool,谢谢你的澄清。

您需要选择要放置图表的范围。所以......

Set wRange = wSheet.Range("A26:C40")
wRange.Select
'here code to add chart

现在,您应该能够添加新图表;)