数组中的通配符 vlookup - VBA
Wildcard vlookup in arrays - VBA
我在将值从一个数组查找到另一个数组时遇到问题。
数组是:
我的代码导致错误 2042:
Dim arr9 As Variant
ReDim arr9(LBound(arr7) + UBound(arr7))
i = 0
For i = LBound(arr7) To UBound(arr7) Step 1
arr9(i) = Application.VLookup(Left(arr7(i), 5) & "*", Arr, 1, 0)
Next i
我需要的是从arr7中找到项目,即arr中的arr7(0) = zch20,并将arr中的相应值分配给arr9。只需要对前 5 个字符进行 vlookuped,因为它们是 arr 和 arr7 的共同字符,但需要将全名字符串插入到 arr9。
谢谢。
VLOOKUP
is a worksheet function, for use with ranges of cells (or worksheet tables) but not for VBA arrays.
一个可比较的 VBA 函数,您可能更幸运地使用 Filter
。
Filter(sourcearray, match, [ include, [ compare ]])
更多信息:
- 文档:
Filter
function
- Microsoft 支持:VLOOKUP: When and how to use it(视频)
- AutomateExcel.com: VBA Search for (Find) Value in Array
- 堆栈溢出:
我在将值从一个数组查找到另一个数组时遇到问题。
数组是:
我的代码导致错误 2042:
Dim arr9 As Variant
ReDim arr9(LBound(arr7) + UBound(arr7))
i = 0
For i = LBound(arr7) To UBound(arr7) Step 1
arr9(i) = Application.VLookup(Left(arr7(i), 5) & "*", Arr, 1, 0)
Next i
我需要的是从arr7中找到项目,即arr中的arr7(0) = zch20,并将arr中的相应值分配给arr9。只需要对前 5 个字符进行 vlookuped,因为它们是 arr 和 arr7 的共同字符,但需要将全名字符串插入到 arr9。
谢谢。
VLOOKUP
is a worksheet function, for use with ranges of cells (or worksheet tables) but not for VBA arrays.
一个可比较的 VBA 函数,您可能更幸运地使用 Filter
。
Filter(sourcearray, match, [ include, [ compare ]])
更多信息:
- 文档:
Filter
function - Microsoft 支持:VLOOKUP: When and how to use it(视频)
- AutomateExcel.com: VBA Search for (Find) Value in Array
- 堆栈溢出: