我几乎在任何地方都进行了搜索,找到了一种可以计算不同列中条目数的方法,但我能找到的只是代码,这些代码试图识别是否可以在B列中找到来自A列的值。
我想要一个简单的代码来检查 A列是否具有相同数量的条目,即 B列。
例如,如果列A 的条目来自 A1到A10 而列B 的条目来自 B1到B5 那么它应该是FALSE,否则如果B列有 B1到B10 的条目,那么结果应为正(TRUE)。
我只需要一个开始,然后我可以根据自己的需要调整代码。任何帮助都必须得到赞赏!
注意:值不必匹配。代码应该只是计算条目数。提前谢谢!
答案 0 :(得分:2)
我要么使用CountA excel公式计算非空单元格的数量,要么在VBA中使用类似的Worksheet函数。见下面的代码
Function CompareAtoB() As Boolean
CompareAtoB = WorksheetFunction.CountA(Range("A:A")) = WorksheetFunction.CountA(Range("B:B"))
End Function
答案 1 :(得分:1)
试试这个:
=COUNTA(A:A)=COUNTA(B:B)
注意:强>
如果值是数字或文本或 Nulls 或错误,则无关紧要。
有关获取工作表公式以在 VBA 中执行的一般问题,请考虑:
Sub DoItInVBA()
Dim s As String, boo As Boolean
s = "=Counta(A:A)=Counta(B:B)"
boo = Evaluate(s)
MsgBox boo
End Sub
修改#1:强>
链接布尔表达式时需要小心。例如
Sub BooTest1()
Dim boo As Boolean
a = 7
b = 7
boo = (a = b)
MsgBox boo
End Sub
将返回 True ,但是:
Sub BooTest2()
Dim boo As Boolean
a = 7
b = 7
c = 7
boo = (a = b = c)
MsgBox boo
End Sub
将返回 False ,因为 True 不等于 7 !
对于我们的任务,我们可以使用And()
:
Sub DoItInVBA()
Dim s As String, boo As Boolean
s = "=And(Counta(A:A)=Counta(B:B),Counta(B:B)=Counta(C:C))"
boo = Evaluate(s)
MsgBox boo
End Sub