我試圖顯示一個消息框*指示當一個查找公式匹配數組中的名稱,當它沒有。當vlookup返回或不返回匹配時顯示一個消息框
有了下面的數據,我目前的代碼工作正常:
Name Name
John John
它返回下面的消息框:「OK」
Sub check_name()
Dim name As String
name = Range("A2")
If Application.WorksheetFunction.VLookup(Range("A2"), Range("B1:B2"), 1, False) = name Then
MsgBox "Ok"
Else
MsgBox "Not Ok"
End If
End Sub
但如果沒有一個代碼不起作用比賽。
以下數據,我試圖顯示:「不好」。
Name Name
John Wayne
我得到以下信息:
運行時錯誤「1004」
應用程序定義或對象定義的錯誤
我猜If
聲明不起作用當vlookup
未返回匹配時,即公式返回#N/A
(不可用)。
我試圖將變量name
定義爲布爾值。使它與用IsNA
包裝的查找公式相等,然後我嘗試在If語句中使用'name',但是我得到了上述相同的結果模式。
我該如何解決這個問題?韓國社交協會。
* 尋找使用VBA
試試看:MsgBox IIF(IsError(Application.Match(name,Range(「B1:B2」),False)),「Not OK」 OK「)'。 –
Gahhh。對於類似的問題,有一個可以接受的答案,就像關閉原因所表明的那樣,但這不是一個真正的答案......當這個問題被標記爲正式「關閉」時,我距離提交答案約5秒。如果你想PM /聊天或給我發電子郵件([email protected]),我可以給你我的完整答案。乾杯。 –
@DavidZemens它的Doug的答案來自應該使用的副本。同意接受的不順暢。 – brettdj