当行1为空时,以下语句(循环)以错误结尾。我希望该错误会被静默忽略,并且要处理下一张纸。on error
有效时,代码如何停止?我希望它会忽略该错误,并在skip
标签之后继续进行处理。
Sub listSheets()
Dim sh As Worksheet, ar
Dim a
Set a = Application
For Each sh In ThisWorkbook.Sheets
Sheet1.Cells(3 + sh.Index, 1) = sh.Name
On Error GoTo skip
ar = sh.Range("1:1").SpecialCells(xlCellTypeConstants) 'code stops here if row 1 empty
ar = a.Transpose(a.Transpose(ar))
Sheet1.Cells(3 + sh.Index, 2) = Join(ar, "//")
ar = Null
skip:
Next sh
End Sub
注意:错误陷阱设置为“打破未处理的错误”
我能够复制此问题。我相信原因在于您已经遇到错误。但是,您从未清除错误。
因此,我有三个工作表,第二个和第三个是空白行。您的On Error Goto
经过了第二张工作表,但第三张却返回了Error 1004
。
您可能想包含Err.Clear