![](/img/trans.png)
[英]run time error 1004 object application defined or object defined error
[英]run time error 1004 application defined or object defined error - looping over same range in different worksheets
你能帮我解决以下问题吗:
Sub PBLSearch()
Dim PBLRng As Range
Dim PBL As Range
Dim SearchRng As Range
Dim SourceWsNr As Integer
For SourceWsNr = 1 To 2
Debug.Print Workbooks("Book1.xlsx").Sheets(SourceWsNr).Name
Set PBLRng = Workbooks("Book1.xlsx").Sheets(SourceWsNr).Range(Range("A1"), Range("A1").End(xlDown))
For Each PBL In PBLRng.Cells
Debug.Print PBL.Value
Next PBL
Next SourceWsNr
End Sub
当SourceWsNr
等于 1 时,代码工作正常,但一旦更改为 2,我就会收到主题中提到的错误。 是因为我重新设置了PBLRng
变量吗? 我找不到任何解决此问题的方法...
非常感谢您提前。
此致,
S·Sz。
问题是线路
Workbooks("Book1.xlsx").Sheets(SourceWsNr).Range(Range("A1"), Range("A1").End(xlDown))
Range("A1")
和Range("A1").End(xlDown)
正在引用活动工作表上的单元格,这就是它在第二个工作表上失败的原因(工作表的范围方法的参数必须在同一张纸)。 每次调用Range
时都必须指定工作表这应该这样做:
With ActiveWorkbook.Sheets(SourceWsNr)
Set PBLRng = .Range("A1", .Range("A1").End(xlDown))
End With
编辑:您也可以考虑使用另一种方法来查找最后一行,例如.Cells(.Rows.count,1).End(xlUp)
。 不过,这取决于您的具体需求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.