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
Excel 运行时错误1004。对象工作表的方法范围失败_Excel_Vba - Fatal编程技术网

Excel 运行时错误1004。对象工作表的方法范围失败

Excel 运行时错误1004。对象工作表的方法范围失败,excel,vba,Excel,Vba,我得到一份工作 运行时错误“1004”:对象“工作表”的方法“范围”失败 我想这就是它所在的线路 Set datarng = purchfcst.Range("A2:Q" & datalastrow) 我不确定是什么错误,因为我看不出这有什么错误 Sub updatepacksizecostandorders() Dim cofws As Worksheet, purchfcst As Worksheet Dim coflastrow As Long, purchlastrow As

我得到一份工作

运行时错误“1004”:对象“工作表”的方法“范围”失败

我想这就是它所在的线路

Set datarng = purchfcst.Range("A2:Q" & datalastrow)
我不确定是什么错误,因为我看不出这有什么错误

Sub updatepacksizecostandorders()

Dim cofws As Worksheet, purchfcst As Worksheet
Dim coflastrow As Long, purchlastrow As Long
Dim datarng As Range


Set cofws = ThisWorkbook.Worksheets("COF Replen")
Set purchfcst = ThisWorkbook.Worksheets("purchase forecast")

coflastrow = cofws.Range("G" & Rows.Count).End(xlUp).Row
purchlastrow = purchfcst.Range("A" & Rows.Count).End(xlUp).Row

Set datarng = purchfcst.Range("A2:Q" & datalastrow)

For x = 2 To coflastrow
    On Error Resume Next
    cofws.Range("G" & x).Value = Application.WorksheetFunction.VLookup(cofws.Range("A" & x).Value.datarng, 2, False)


Next x


End Sub

对于初学者,
Rows.Count
应该是一个限定的引用:
purchcst.Rows.Count
或者它只是引用活动工作表,而不是您假定它引用的工作表。然后确保
datalastrow
不等于零,删除错误恢复下一步时的
,并在第一行设置断点,然后逐行检查变量的值。你有一个周期,在这个周期中应该有一个逗号
VLookup(cofws.Range(“a”&x).Value,datarng,2,False)
如何检查datalastrow不等于零?你需要像对待
purchlastrow
等那样给它赋值。