Excel VBA小程式 -使 用VBA實現VLOOKUP函式查詢?
表格內容:
A列 | B列 | C列 | D列 | E列 | F列 |
---|---|---|---|---|---|
姓名 | 出生日期 | 年齡 | 姓名 | 年齡 | |
楊春海 | 1987-6-22 | 33 | 許文武 | ||
趙春雨 | 1980-9-17 | 39 | 劉永江 | ||
李美橋 | 1998-4-12 | 22 | |||
劉永江 | 1992-3-17 | 28 | |||
許文武 | 1987-4-13 | 33 | |||
劉景瑞 | 1994-7-27 | 26 |
如果用VLOOKUP函式解決:
=IFERROR(VLOOKUP(A11,A$1:C$7,3,0),"")
如果使用VBA程式碼解決:
Sub DctFind()
Dim d As Object, arr, brr, i&
Set d = CreateObject("scripting.dictionary")
d.CompareMode = vbTextCompare
'-----------------------------------------------------------------------------------------------------------------------------------
'裝入: 資料來源裝入陣列arr, 查詢區域資料裝入陣列brr,遍歷陣列arr,UBound(arr)表示陣列arr的最大行號。將學號作為key,姓名作為item裝入字典
arr = [a1:c7]
brr = [e1:f5]
For i = 1 To UBound(arr)
d(arr(i, 1)) = arr(i, 3)
Next
'-----------------------------------------------------------------------------------------------------------------------------------
'遍歷:標題行不用查詢,從第二行開始遍歷查詢數值brr,如果字典中存在考號,根據考號從字典中取值。如果字典中不存在相關考號,則值返回為空
For i = 2 To UBound(brr)
If d.exists(brr(i, 1)) Then
brr(i, 2) = d(brr(i, 1))
Else
brr(i, 2) = ""
End If
Next
'-----------------------------------------------------------------------------------------------------------------------------------
'寫入:設定文字格式,避免某些文字數值變形,結果陣列寫入單元格區域,釋放字典
With [e1:f5]
.NumberFormat = "@"
.Value = brr
End With
MsgBox "查詢完成。"
Set d = Nothing
' '-----------------------------------------------------------------------------------------------------------------------------------
End Sub
小貼士:
1>該段程式碼區分字母大小寫,即A和a作為查詢值時,並不相等。如果需要不區分字母大小寫,解除程式碼中下面語句的註釋塊。
d.CompareMode vbTextCompare
相關文章
- Excel VBA活動抽獎小程式Excel
- VBA中使用EXCEL工作表函式Excel函式
- Access/VBA/Excel-13-巢狀查詢Excel巢狀
- Excel vba自定義函式公式智慧提示Excel函式公式
- Excel vbaExcel
- EXCEL+VBAExcel
- VBA 自定義常用函式 (備用)函式
- Vlookup大叔與一對多查詢(Excel函式集團)Excel函式
- 用 (Excel) VBA 讀取 OneNote!Excel
- excel VBA學習Excel
- VBA過程―子程式與函式(轉)函式
- excel妙用之VLOOKUP函式Excel函式
- Excel中用VBA實現刪除空行和空列Excel
- 5.EXCEL中的VBA程式碼Excel
- Excel VBA - 控制元件與使用者窗體 及 常用函式Excel控制元件函式
- 簡單演示Excel中VBA程式碼的使用Excel
- Python與Excel VBA比較PythonExcel
- 用VBA程式碼編寫一鍵插入Excel斜線表頭Excel
- Excel-如何用VBA程式設計操作Pivot TableExcel程式設計
- 如何檢視excel中的vba編碼程式碼Excel
- Excel VBA 利用FileSystemObject處理檔案ExcelObject
- VBA從Excel中生成Oracle create tableExcelOracle
- 用VBA計算EXCEL中的行數和列數Excel
- VLOOKUP 函式函式
- 征服Excel VBA:讓你工作效率倍增的239個實用技巧Excel
- VBA遍歷 Excel 合併到一個 Excel 檔案Excel
- Excel——如何使用VBA操作單元格的格式Excel
- EXCEL橫向變縱向(不需要VBA)Excel
- c++字串查詢函式實現C++字串函式
- 二分查詢(函式實現)函式
- VBA驅動SAP GUI自動化:查詢頁面元素FindAllByNameGUI
- Excel函式應用例項:職工資訊查詢(轉)Excel函式
- VBA 知識
- VBScript.RegExp 正規表示式excel vba 學習經驗Excel
- vba-單元格程式碼
- Excel 中的 VLOOKUP 函式,沒你想的那麼難Excel函式
- Python基礎之openpyxl如何實現vlookup函式Python函式
- 在Excel VBA中使用SQL到底優勢在哪兒ExcelSQL