我是VBA新手,在下面的代码中出现类型不匹配错误。类型不匹配错误
我得到整数j
的错误。我已将其更改为所有其他数据类型,但仍相同。
Private Sub CommandButton3_Click()
Dim rng1 As Range, rng2 As Range, i As Integer, j As Integer, k As Integer
Set rng1 = Range("A:A")
Set rng2 = Range("B:B")
j = Application.WorksheetFunction.Lookup(2, 1/(rng1 <> ""), rng1)
k = Application.WorksheetFunction.Match(j, rng1, 0)
i = 0
For i = i + 1 To k
If Cells(i, 1) Mod 2 = 0 Then
Cells(i, 2) = "Even"
Else: Cells(i, 2) = "Odd"
End If
Next i
MsgBox "There are " & Application.WorksheetFunction.CountIf(rng2, "Even") _
& " Even and " & Application.WorksheetFunction.CountIf(rng2, "Odd") & " Odd numbers"
End Sub
不能阵列比较字符串(即'rng1 <>“”'无效并且会导致类型不匹配)。 – YowE3K
谢谢。这意味着我只能使用最后一行功能。请说明如何在VBA中使用此公式,因为在Excel中可以正常工作,但在VBA中不能正常工作 – Roumya
如果我正确读取代码,则试图找到包含最后一列占用的列上的值的第一行A.这是正确的吗?然后,您正在设法计算出至此为止出现了多少个偶数以及多少个奇数 - 但是您希望从列中排除最后一个值的第一次出现以外的任何内容。是否正确?因此,如果单元格A1:A9包含“1,2,2.7,3,4,5,1,2,3”,则您试图计算1个偶数和3个奇数(即仅计数到A4的计数)。那是对的吗? – YowE3K