繁体   English   中英

运行时错误 1004 应用程序定义或对象定义错误 - 在不同工作表中的相同范围内循环

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM