我正在Excel中构建一个数据库,其中工作表是表,列是列,行是记录。
我创建了一个函数,如果Value1和Value2的记录已经在同一行上,则该函数返回一个布尔值,以防止重复。
问题是:
我对三个匹配的值做同样的运算。
必须有一种方法使它根据数组中值的数量动态变化。
有我的初始代码为两个值匹配
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
2条答案
按热度按时间kd3sttzy1#
如果要构建数据库,请考虑使用SQL
或不使用ADODB
wkyowqbh2#
谢谢你的回答
我已经考虑过用SQL构建一个数据库,遗憾的是,这并不真正符合我的需要,因为我存储的数据几乎没有"逻辑链接",而且真的是完全不同的。
没关系,我想通了,但我觉得这段代码是不是真的干净,如果有人知道如何改善它,随时回答!