如何修改VBA函数,使数组匹配Excel表格的第二列起数据?
修改后的checkDuplicate函数
直接调整代码中读取数据范围的起始列,即可实现从第二列开始匹配数组:
Function checkDuplicate(ws As Worksheet, valuesArray As Variant) As Boolean Dim i As Long, n As Long, j As Long, z As Long Dim ar If ws.Name = "Interface" Or ws.Name = "Listes" Then Exit Function z = LBound(valuesArray) n = UBound(valuesArray) - z + 1 With ws ' 关键修改:从第二列开始取n列数据,跳过开头的ID列 ar = .UsedRange.Columns(2).Resize(, n) For i = 1 To UBound(ar) j = 1 Do If ar(i, j) <> valuesArray(j + z - 1) Then Exit Do End If j = j + 1 Loop While j <= n If j > n Then checkDuplicate = True Exit Function End If Next End With End Function
修改说明
- 核心改动是将
.UsedRange.Columns(1).Resize(, n)替换为.UsedRange.Columns(2).Resize(, n),让读取的匹配区域从工作表第二列起始,完美对应你传入的无ID数组。 - 其余逻辑保持不变:逐行比对数组所有元素,找到完全匹配的行立即返回
True,遍历结束无匹配则返回默认的False。
内容的提问来源于stack exchange,提问作者HMWorks
相关产品推荐
相关产品推荐

