簡體   English   中英

使用vba進行查找

[英]Doing a lookup using vba

我的工作簿中有一個值(變體) strCompany 我想確定此值是否存在於另一個工作簿的列A中,tmp_workbook。 如果它不存在,則應該有一個消息框。 下面的代碼是否有意義(我在代碼中先前定義了變量tmp_workbook和strCompany)? 如果不是,也許你可以建議一個更好的方法?

On Error GoTo ErrorHandler

    Set value_exists_in_table = tmp_workbook.ActiveSheet.Range("A1:A100000").Find(strCompany)

    ErrorHandler:
    Select Case Err.Number
            Case 9, 91
                MsgBox "The company " & strCompany & " was not found."
            Exit Sub

    End Select

Range.Find方法從上次使用時繼承了許多參數; 通常由用戶在工作表上。 您應該明確指定幾個更常用的參數,如LookAt:xlWholeLookAt:xlPartLookIn:=xlValuesLookIn:=xlFormulas

我通常遠離。查找單行或列中的完全匹配。 Excel Application對象的本機MATCH函數可以很好地定位值。

dim rw as variant
with worksheets("Sheet1")
    rw = application.match(strCompany, .Columns(1), 0)
    if not iserror(rw) then
        value_exists_in_table = .cells(rw, 1).value
        debug.print value_exists_in_table & " found in row " & rw
    else
        debug.print "The company " & strCompany & " was not found."
    end if
end with

暫無
暫無

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

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