簡體   English   中英

Excel VBA:多個條件匹配-評估功能

[英]Excel VBA: Multiple Criteria Match - Evaluate Function

我曾多次嘗試在VBA中正確使用評估功能,但未成功。 我想在數據表上運行多個條件匹配。 我在這里提供了樣本數據表進行測試。 我無法獲得函數Evaluate(evalStr)傳遞匹配行。 我反復收到一條錯誤消息。 我在下面提供了一個示例代碼集,所需的結果是第7行,其中item1 =“ Orange”和item2 =“ Feb”。 您能幫忙找出問題嗎?

在此處輸入圖片說明

Sub testEval()

Dim dataTable As ListObject
Dim evalStr As Variant
Dim item1 As String
Dim item2 As String
Dim ws As Worksheet

item1 = "Orange"
item2 = "Feb"

Set ws = ActiveSheet
Set dataTable = ws.ListObjects(1)

With ws

    'V1
    evalStr = .Evaluate("MATCH(" & item1 & "&" & item2 & "," & .Columns(1).Address & "&" & .Columns(2).Address & "),0)")

    'V2?
    'evalStr = .Evaluate("MATCH(" & item1 & "&" & item2 & "," & Application.WorksheetFunction.Substitute(.Columns(1).Address & "&" & .Columns(2).Address, "$", "") & "),0)"

    'With dataTable.DataBodyRange

        ''V3?
        'evalStr = ws.Evaluate("MATCH(" & item1 & "&" & item2 & "," & .Columns(1).Address & "&" & .Columns(2).Address & "),0)")

        ''V4?
        'evalStr = ws.Evaluate("MATCH(" & item1 & "&" & item2 & "," & Application.WorksheetFunction.Substitute(.Columns(1).Address & "&" & .Columns(2).Address, "$", "") & "),0)")

    'End With

    End With
End Sub

evalStr應該是:

evalStr = .Evaluate("=MATCH(""" & item1 & """&""" & item2 & """," & .Columns(1).Address & "&" & .Columns(2).Address & ",0)")

=在公式中丟失, item1item2應該用雙引號引起來,因此我在"" ,0 ""之前添加了""並且有多余的)

暫無
暫無

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

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