建立我过去的一个questions
我想要完成的事情:
我希望根据多个条件使用VBA代码查找并突出显示重复的Upcharge:
如果电子表格中有多个实例/行共享/匹配所有这些条件,则表示Upcharge是重复的。正如我上面链接的帖子所示:
我尝试了什么:
scripting.dictionary
,但我不确定如何(或者如果)使用多维数组。现在我终于找到了我认为会更快的方法,
我想要使用的更快的方法: 将上述列转储到多维数组中,在数组中找到重复的“行”,然后突出显示相应的电子表格行。
我尝试更快的方法: 这是我填充多维数组的方法
Sub populateArray()
Dim arrXID() As Variant, arrUpchargeOne() As Variant, arrUpchargeTwo() As Variant, arrUpchargeType() As Variant, arrUpchargeLevel() As Variant
Dim arrAllData() As Variant
Dim i As Long, lrow As Long
lrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
arrXID = Range("A2:A" & lrow) 'amend column number
arrUpchargeOne = Range("CT2:CT" & lrow)
arrUpchargeTwo = Range("CU2:CU" & lrow)
arrUpchargeType = Range("CV2:CV" & lrow)
arrUpchargeLevel = Range("CW2:CW" & lrow)
ReDim arrAllData(1 To UBound(arrXID, 1), 4) As Variant
For i = 1 To UBound(arrXID, 1)
arrAllData(i, 0) = arrXID(i, 1)
arrAllData(i, 1) = arrUpchargeOne(i, 1)
arrAllData(i, 2) = arrUpchargeTwo(i, 1)
arrAllData(i, 3) = arrUpchargeType(i, 1)
arrAllData(i, 4) = arrUpchargeLevel(i, 1)
Next i
End Sub
我可以将列添加到数组中,但是我从那里被卡住了。我不确定如何检查数组中的重复“行”。
我的问题:
上一篇文章中的公式供参考:
=AND(SUMPRODUCT(($A$2:$A$" & lastRow & "=$A2)*($CT$2:$CT$" & lastRow & "=$CT2)*($CU$2:$CU$" & lastRow & "=$CU2)*($CV$2:$CV$" & lastRow & "=$CV2)*($CW$2:$CW$" & lastRow & "=$CW2))>1,$CT2 <> """")"
Returns TRUE if Upcharge is a duplicate