gpt4 book ai didi

excel - 如何在 Excel VBA 中使用带有循环的 VLOOKUP 将数据写入多个工作表?

转载 作者:行者123 更新时间:2023-12-04 21:47:41 25 4
gpt4 key购买 nike

我正在尝试使用循环和 VLookup 将信息写入 excel 中的多个工作表,它们都从同一个输入工作表中获取信息。它适用于一张工作表,但我不断收到错误消息,即其他工作表的“无法获取 Worksheet 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,因为它不直接返回值。

关于excel - 如何在 Excel VBA 中使用带有循环的 VLOOKUP 将数据写入多个工作表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61165864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com