当使用括号表示法时,例如[A1]
您所使用的方法EVALUATE
:
使用方括号(例如,“[A1:C5]”)是相同的调用带有一个字符串参数Evaluate方法。
您可以使用此设置由括号标记如指定的范围内Formula
财产做你想做什么:
Option Explicit
Sub CompareCells1()
[L2:L10].Formula = "=IF(A2=N2,""yes"",""no"")"
End Sub
注意使用:
获得Range
- 使用,
s表示你会这样做:
Option Explicit
Sub CompareCells2()
' you need to type each cell reference upto L10....
[L2, L3, L4, L5].Formula = "=IF(A2=N2,""yes"",""no"")"
End Sub
这不如CompareCells1
。
您可以将范围分配到Variant
但你不能简单地比较两个数组这样的 - 这是行不通的:
Option Explicit
Sub CompareCells3()
Dim var1, var2
var1 = [A2:A10]
var2 = [N2:N10]
' throws a Type Mismatch error
If var1 = var2 Then
' this will never happen
End If
End Sub
您可以通过使用上述比较var1
和var2
%的故障实例Transpose
和Join
方法suggested by Siddarth in his comment, per Tim Williams post但我认为CompareCells1
方法是最容易的,如果您需要或想要使用括号表示法。使用,
s做比较会导致误报。例如:
Option Explicit
Sub CompareCells4()
Dim var1, var2
var1 = [A2,A10]
var2 = [N2,N10]
' creates a string from the range values
If var1 = var2 Then
' this is a false positive - check the value of var1 and var2
[L2:L10] = "False positive"
End If
End Sub
这里var1
是A2
只是价值和var2
只是意味着,即使你可以设置与括号标记的范围L2:L10
不会让你按你的要求正确比较的N2
值。
是的,这听起来很简单。有什么需要帮助的吗? – YowE3K
是的我想要vba代码执行以上操作.. – Manu
比较?什么? =,>,<, > =,<=, <>? –