2015-07-10 228 views
1

我試圖將循環中的單元格值與VBA進行比較。我用的是循環是這樣的使用excel VBA將單元格中的文本與另一個單元格中的「= text」進行比較

For Each r In Rng 
If Cells(r.Row, var1) = "string" And Cells(r.Row, var2) = Variable Then 
    Cells(r.Row, var3) = "targetstring1" 
ElseIf Cells(r.Row, var1) = "string2" And Cells(r.Row, var2) <> Variable Then 
    Cells(r.Row, var3) = "targetstring2" 
end if 
Next r 

我試圖讓輸入條件輸入板在同一個Excel工作簿,但我需要使它的動態。例如,在輸入單元格中,我想放置「= string」和「<> XX」,其中XX與Variable的值相同。這將允許從輸入表而不是代碼控制=/<>,並且允許用戶更靈活地使條件適應他們的情況。

這可能嗎?我曾嘗試使用evaluate()函數,但尚未能使其運行。

任何幫助表示讚賞。

謝謝!

+0

if語句的第一部分是否按照您的要求工作? –

回答

1

測試輸入:

Test Input

代碼:

Sub Tester() 

    Dim rw As Range 

    For Each rw In Range("A2:C10").Rows 
     If rw.Cells(1) <> "" Then 
      rw.Cells(3).Value = Eval(rw.Cells(1), rw.Cells(2)) 
     End If 
    Next rw 

End Sub 


Function Eval(rngVal As Range, rngCrit As Range) 

    Dim addr As String, op As String 
    addr = rngVal.Address(False, False) 
    op = rngCrit.Value 

    Eval = rngVal.Parent.Evaluate(addr & op) 
End Function 

結果:

Output

當進入你可能需要你的細胞以文本格式或預先準備的標準'以防止Excel試圖將其視爲公式

相關問題