如何修复运行时13错误类型不匹配?

时间:2014-09-30 20:16:57

标签: excel vba excel-vba

运行此宏时,我得到运行时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

感谢任何帮助!

1 个答案:

答案 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