當使用括號表示法時,例如[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
比較?什麼? =,>,<, > =,<=, <>? –