"Vlookup" and "Match" in VBA
- 帖子
- 56
- 主題
- 8
- 精華
- 0
- 積分
- 81
- 點名
- 0
- 作業系統
- Window7
- 軟體版本
- OFFICE2010
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2011-6-25
- 最後登錄
- 2016-1-17
|
看了上面的帖子,對於函數使用於VBA 還是一知半解
不知可否將常用的函數組合運用於 VBA 呈現,配合自定義函數使用
但應該是對於資料形態還不了解,再加上函數的寫法更是剛用
所以寫了一個應該是錯誤不少,改了數次都亂了譜
如附件,希望有先進可以協助一下看是否可行
函數組合為
=IF(ISNA(VLOOKUP($A2,設備清單!$A$1:$B$20,MATCH(D$1,設備清單!A$1:B$1,0),0)),"無設備資料",(VLOOKUP($A2,設備清單!$A$1:$B$20,MATCH(D$1,設備清單!A$1:B$1,0),0)))
希望呈現
=vlmatch($A2,E$1,無設備資料,設備清單!$A$1:$B$20,設備清單!$A$1:$B$1)
vlmatch 為自定義函數,只需輸入 $A2,E$1,無設備資料,設備清單!$A$1:$B$20,設備清單!$A$1:$B$1即可
改了數次,最後錯誤,寫了如下- Public Function VLMatch(tt$, KK$, NN$, DALL As Range, dt As Range) As String
- Dim i%, j$, k As Boolean
- i = Evaluate("Match(kk, dt, 0)")
- j = Evaluate("VLookup(tt, DALL, i, 0)")
- k = Evaluate("IsNA(j)")
- If k = False Then
- VLMatch = NN
- Else
- VLMatch = j
- End If
-
- End Function
複製代碼
自定義函數 VLOOK+Match.rar (108.68 KB)
|
|
|
|
|
|
|
|
- 帖子
- 56
- 主題
- 8
- 精華
- 0
- 積分
- 81
- 點名
- 0
- 作業系統
- Window7
- 軟體版本
- OFFICE2010
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2011-6-25
- 最後登錄
- 2016-1-17
|
本帖最後由 Happkkevin 於 2011-7-17 12:00 編輯
回復 Happkkevin
GBKEE 發表於 2011-7-17 08:45 
GBKEE 版大,真的是太厲害囉
每每我花了許久時間修正只要經過此處先進的指導
不只問題解決,更讓我學到許多
至於VBA可用函數之前我沒有確認只是 if 發生問題才處理
說明中 我的軟體關於 vlookup 與 match 沒有說明,但我想應該是與函數相同
感謝你的指導
修正為你的語法加上修正 NN輸入""即符合我的需求
=vlmatch($A2,E$1,"無設備資料",設備清單!$A$1:$B$20,設備清單!$A$1:$B$1) |
|
|
|
|
|
|
|