运行此宏时,我得到运行时13错误类型不匹配。呼出是"如果......那么"。
代码看似正常。我能想到的唯一问题是,在此之前运行一个单独的宏,它使用公式命名单元格(1,8),然后发生复制,粘贴值。
Sub NewWb()
Set wb1 = ThisWorkbook
Set wb2 = Workbooks.Add
For Each Worksheet In wb1.Worksheets
**If Worksheet.Cells(1, 8).Value = "PI Fin Ops" Then**
Worksheet.Move After:=wb2.Sheets(wb2.Sheets.Count)
End If
Next Worksheet
End Sub
感谢任何帮助!
答案 0 :(得分:1)
如果单元格包含错误值,则通常会引发该错误。您可以使用IsError
函数轻松捕获它。
我还建议您避免在变量命名约定中使用保留或半保留关键字,例如Worksheet
。
Dim WS as Worksheet
Dim wb1 as Workbook
Dim wb2 as Workbook
Set wb1 = ThisWorkbook
Set wb2 = Workbooks.Add
For Each WS In wb1.Worksheets
If Not IsError(WS.Cells(1,8).Value Then
If WS.Cells(1, 8).Value = "PI Fin Ops" Then
WS.Move After:=wb2.Sheets(wb2.Sheets.Count)
End If
End If
Next WS