运行-时间错误“13”:清除单元格内容时类型不匹配

Run-time Error '13': Type Mismatch when I clear cell contents

我是 VBA 的新手,但到目前为止,我已经能够自己完成我需要的一切。但是,我似乎无法解决这个问题。从技术上讲,我有 2 个不同的私人潜艇 (Worksheet_Change),但只有将它们组合起来才能让它们工作。第一个将 B 列中具有相同内容的单元格的数量限制为 3.

如果 H = 100,第二个清除范围 G:I,并复制范围 A:F。"Macro1" 给我这个 运行 时间错误(运行-time Error '13': Type Mismatch) 当我出于某种原因清除内容时。很明显,"Macro2"是在清除内容,所以我真的在和自己作对。

Private Sub Worksheet_Change(ByVal Target As Range)

'First Macro. (The issue is in this Macro)

If WorksheetFunction.CountIf(Range("B4:B350"), Target) > 3 Then

    msgbox "This team member has the maximum number of open projects.", vbCritical, "Overburdened"
    Target.Value = ""
    Target.Select

End If

'Second Macro

    Dim rngStart As Range

    Set rngStart = ActiveCell

    A = Worksheets("Project Tracking").Cells(Rows.Count, 1).End(xlUp).Row


For i = 4 To A

    If Worksheets("Project Tracking").Cells(i, 8).Value = 100 Then

        Worksheets("Project Tracking").Range(Cells(i, 7), Cells(i, 9)).ClearContents
        Worksheets("Project Tracking").Range(Cells(i, 1), Cells(i, 6)).Copy
        Worksheets("Completed Projects").Activate
        B = Worksheets("Completed Projects").Cells(Rows.Count, 1).End(xlUp).Row
        Worksheets("Completed Projects").Cells(B + 1, 1).Select
        ActiveSheet.Paste
        Worksheets("Project Tracking").Activate
        Worksheets("Project Tracking").Range(Cells(i, 1), Cells(i, 6)).ClearContents

        Call Reset_List

        Call Macro3

    End If

Next

Application.CutCopyMode = False

ThisWorkbook.Worksheets("Project Tracking").Cells(1, 1).Select

rngStart.Select


End Sub

你在这一行得到类型不匹配...

If WorksheetFunction.CountIf(Range("B4:B350"), Target) > 3 Then

...因为您正在调用 Target 的默认成员(即 .Value),然后将其传递给 CountIf。问题是因为你在 Worksheet_Change 事件处理程序中,所以 Target 不必是单个单元格 。如果它不是单个单元格,Target.Value 包含一个数组,如果您尝试将其传递给 CountIf,则会抛出该数组。如果您只对单个单元格更改感兴趣,请在 Sub:

的顶部放置一个保护子句

If Target.Cells.Count <> 1 Then Exit Sub

此外,如评论中所述,由于您正在更改单元格(尽管不清楚 sheet 这是在哪个单元格中),您应该在开始进行可能导致重新输入的更改之前禁用事件 - Application.EnableEvents = False。完成后不要忘记重新启用它。