[英]Vlookup for all sheets in an Excel workbook with VBA loop is not working
[英]How do you use VLOOKUP with a loop in Excel VBA to write data into multiple sheets?
我正在嘗試使用循環和 VLookup 將信息寫入 excel 中的多個工作表,這些工作表都從同一個輸入工作表中獲取信息。 它適用於一張工作表,但我不斷收到錯誤消息,即“無法獲取工作表 Function 類的 VLookup 屬性”對於其他工作表。 錯誤在變量 Wave(i) 中。
Function Waves(BN() As Integer, Table As Range, Wave() As String, _
wsName As String, numRows As Integer)
Dim i As Integer
For i = 0 To numRows
BN(i) = ThisWorkbook.Worksheets(wsName).Range("A" & i + 2) 'change 5k to a string variable
Set Table = ThisWorkbook.Worksheets("Cleaned Input").Range("Table2")
Wave(i) = Application.WorksheetFunction.VLookup(BN(i), Table, 13)
ThisWorkbook.Worksheets(wsName).Range("F" & i + 2) = Wave(i)
Next
End Function
如果您刪除WorksheetFunction
,您可以使用IsError()
測試 Vlookup 返回值。 如果包含 WorksheetFunction,則在 Vlookup 未找到匹配項時會出現運行時錯誤。
Function Waves(BN() As Integer, Table As Range, Wave() As String, _
wsName As String, numRows As Integer)
Dim i As Integer, v, ws As Worksheet
Set ws = ThisWorkbook.Worksheets(wsName)
Set Table = ThisWorkbook.Worksheets("Cleaned Input").Range("Table2")
For i = 0 To numRows
BN(i) = ws.Range("A" & i + 2) 'change 5k to a string variable
v = Application.VLookup(BN(i), Table, 13, False)
If IsError(v) Then v = "No Match"
Wave(i) = v
ws.Range("F" & i + 2) = v
Next
End Function
順便說一句,這確實應該是一個 Sub,因為它不直接返回值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.