【发布时间】:2022-01-02 18:45:32
【问题描述】:
我实际上是在 Excel 中构建一个数据库,其中工作表是表,列是列,行是记录,目前还挺简单的。
如果 Value1 和 Value2 的记录已经注册在同一行上,我创建了一个返回布尔值的函数,以防止重复。
这是我面临的问题:我实际上正在为 3 个值匹配执行相同的功能
必须有一种方法可以根据数组中的值的数量动态地使其成为可能。但我只是坚持下去。
我有两个值匹配的初始代码
Function checkDuplicate(ws As Worksheet, value1 As Variant, value2 As Variant) As Boolean
Dim rng As Range
Dim first As Variant
checkDuplicate= False
If (ws.Name <> "UI" And ws.Name <> "Lists") Then
With ws.Range("A:A")
Set rng = .Find(value1)
If Not rng Is Nothing Then
first = rng.Row
Do
If ws.Range("B" & rng.Row).Value = value2 Then
checkDuplicate= True
End If
Set rng = .FindNext(rng)
Loop While rng.Row <> first
End If
End With
End If
End Function
如果我的英语有点糟糕,或者如果有人因为我搜索时没有找到它而已经帮助另一个人解决同样的问题,我深表歉意。
任何帮助将不胜感激。
【问题讨论】:
-
你可以在一行中尝试 countif/countifs >1 吗?另外,您是否应该在检查 duplicate=true 后退出循环?
标签: excel vba database search duplicates