所以我正在做一个宏来做一堆事情。有一件事是从sheet2中找到sheet1中的单元格重复。给定表1中的columnA,sheet2上columnB中的任何值都与columna sheet1中的任何值匹配。
我知道删除重复项,但我只想标记它们,而不是删除。
我在想过滤过滤器。我知道当你过滤时你可以选择多个标准,所以如果你有一个包含20个不同值的列,你可以在过滤器中选择5个值,它将显示具有特定列的5个值的行。所以我记录了一个宏,并检查了代码,我看到它使用了一个字符串数组,其中每个要搜索的值都在一个字符串数组中。有没有办法只指定整个列并将每个值添加到字符串数组?
提前致谢
答案 0 :(得分:15)
以下是将项目加载到数组中的三种不同方法。第一种方法要快得多,但只是将所有内容存储在列中。你必须小心这一点,因为它创建了一个多维数组,而不是可以传递给AutoFilter的东西。
方法1:
Sub LoadArray()
Dim strArray As Variant
Dim TotalRows As Long
TotalRows = Rows(Rows.Count).End(xlUp).Row
strArray = Range(Cells(1, 1), Cells(TotalRows, 1)).Value
MsgBox "Loaded " & UBound(strArray) & " items!"
End Sub
方法2:
Sub LoadArray2()
Dim strArray() As String
Dim TotalRows As Long
Dim i As Long
TotalRows = Rows(Rows.Count).End(xlUp).Row
ReDim strArray(1 To TotalRows)
For i = 1 To TotalRows
strArray(i) = Cells(i, 1).Value
Next
MsgBox "Loaded " & UBound(strArray) & " items!"
End Sub
如果您提前知道这些值并且只想在变量中列出它们,则可以使用Array()
分配变量Sub LoadArray3()
Dim strArray As Variant
strArray = Array("Value1", "Value2", "Value3", "Value4")
MsgBox "Loaded " & UBound(strArray) + 1 & " items!"
End Sub
答案 1 :(得分:1)
不确定是否有其他人会有这个问题所以我想我会发布我找到的答案。我喜欢@Ripster发布的数组的解决方案(并且感谢它,它几乎可以工作)但在这种情况下它不会真正起作用。我正在使用的是一张包含1个ID列的大量数据,我想检查其他工作表以查看该工作表中是否有重复项(使用ID列)。不删除,只需标记,以便我可以检查出来。循环每行可能超过50K行需要很长时间。
所以,我发现我可以做的是将ID列从另一个工作表复制到主工作表中,并使用条件格式选项以某种颜色标记重复项。 (它会标记两列中的行)然后我可以按颜色过滤列,只显示我用来标记重复项的颜色。如果我以编程方式将列添加到我正在检查行号的表单中,我甚至可以在主表单中包含该列,因此当我过滤颜色时,我可以看到它们在表单中的哪些行。
在这样做之后,我可以录制和调整宏来自动为我的编程倾向较少的同事做这件事
非常感谢!
选择要比较的列后,这里是用红色文本标记重复项而没有填充的代码。 -
Selection.FormatConditions.AddUniqueValues
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).DupeUnique = xlDuplicate
With Selection.FormatConditions(1).Font
.Color = -16383844
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
然后,由于两列都标有重复项,因此请选择您要检查的副本,然后使用要过滤的代码:
`Selection.AutoFilter
ActiveSheet.Range("$C$1:$C$12").AutoFilter Field:=1, Criteria1:=RGB(156, 0 _
, 6), Operator:=xlFilterFontColor`
(在我的测试中,我使用了列c作为要过滤的列,可以使用cells()
引用或range(cells(), cells())
类型的引用以编程方式
祝大家在未来的事业中好运!再次感谢@ripster