簡體   English   中英

在Excel VBA中將單元格中的文本與另一個單元格中的“ = text”進行比較

[英]Comparing text in cell with “=text” in another cell with excel VBA

我正在嘗試在VBA循環中比較單元格值。 我正在使用的循環是這樣

    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相同。 這將允許從輸入頁而不是代碼中控制= / <>,並為用戶提供了更大的靈活性以使條件適應他們的情況。

這可能嗎? 我試圖使用評價()函數,但無法使其工作。

任何幫助表示贊賞。

謝謝!

測試輸入:

測試輸入

碼:

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

結果:

產量

輸入條件時,您可能需要將單元格設置為“文本'格式或在'前面加上'以防止Excel嘗試將其視為公式

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM