以下是我的VB代码。我想在电子表格中统计关于“彼得”的所有不同记录而不重复。 当我运行代码时,总是出现“运行时错误'13':类型不匹配”。我无法调试。我的代码出了什么问题?
Private Sub CheckBox5_Click()
Dim myarray As Variant
myarray = WorksheetFunction.If(Range("C7:C266") = "Peter", 1 / (WorksheetFunction.CountIfs(Range("C7:C266"), "Peter", Range("F7:F266"), Range("F7:F266"))), 0)
If CheckBox5.Value = True Then
TextBox6.Value = WorksheetFunction.Sum(myarray) + 1
End If
If CheckBox5.Value = False Then
TextBox6.Value = ""
End If
End Sub
答案 0 :(得分:0)
您获得的错误是调用IF
函数的方式的结果。第一项必须是逻辑结果,但不能调用多单元格范围的value
(即范围(“C7:C266”))。为了解决这个问题,我认为你需要循环遍历每个单元格并相应地对它们进行操作,尽管可能有一个更聪明的解决方案使用IF
以外的其他我不知道的内容
答案 1 :(得分:0)
你可以这样做:
Sub findPeter()
Dim ws As Worksheet
Dim peterCount As Long
Set ws = Worksheets("nameofyoursheet")
With ws
For i = 7 To 266
If .Cells(i, 3) = "Peter" Then
peterCount = peterCount + 1
End If
Next
End With
If CheckBox5.Value = True Then
TextBox6.Value = peterCount + 1
End If
If CheckBox5.Value = False Then
TextBox6.Value = ""
End If
End Sub
peterCount
是值Peter
的所有出现的总和。