Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 简单范围语句不起作用。应用程序定义或对象定义错误_Vba_Excel - Fatal编程技术网

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

Vba 简单范围语句不起作用。应用程序定义或对象定义错误,vba,excel,Vba,Excel,我不明白为什么我的简单代码不能工作。我所要做的就是使用我自己的范围变量插入一个图表,因为我记得代码应该运行,但我得到一个1004错误:应用程序定义的错误或对象定义的错误 可能是什么问题 编辑:更改wRange对象的起始以使其符合条件。但错误仍然在发生 代码 编辑:在所有注释之后已更新代码– Private Sub tester() Dim wSheet As Worksheet: Set wSheet = ThisWorkbook.Worksheets("MainWindow")

我不明白为什么我的简单代码不能工作。我所要做的就是使用我自己的范围变量插入一个图表,因为我记得代码应该运行,但我得到一个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

我建议使用良好的编程实践,并结合上下文使用代码:

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

[编辑]

@不酷,谢谢你的澄清

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

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

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

哪一行导致错误?使用F8键调试程序。该错误发生在声明nArrayUnqualified或较差/不正确限定的range对象是该错误的#1原因后的最后一行。这里有数百个完全相同的问题。谢谢,现在我知道了不合格的范围对象。我更改了代码,以便限定wRange对象。但是错误仍然发生AddChart2是Excel函数/方法吗?参考这个:是的。更改简单范围目标的范围对象,例如“A1:U1”,使代码可执行。好的,这是Excel的较新版本。我发现它很酷对应用程序定义的错误有什么建议吗?我又开始自学了,但在我看来,语法、声明或变量/对象没有问题吗?谢谢你的回答Maciej,有趣的是,尽管我尝试过,但它产生了相同的错误:(