我有一个条件格式,可以突出显示A列上的所有重复值,并希望将所有突出显示的值粘贴到B列上。问题是,该列有16万行,无法找到突出显示的单元格由于行数巨大。是否可以复制A列中所有突出显示的单元格并将这些值粘贴到B列?我尝试按过滤器颜色排序,但限制为10,000行,因此,如果突出显示行10,001,则不会显示该行。
A B
abc1 abc1
abc2 abc1
abc1
test3
abc3
答案 0 :(得分:2)
您可以将For
.. Next
与If
语句一起使用以查找突出显示的单元格。在这里,i
遍历单元格,如果单元格突出显示,则将其粘贴到rng.offset(n,1)
的下一列中。 n = n + 1
将突出显示的值粘贴到B列中的下一个空行,而不是将值重复粘贴到同一单元格中。此外,application.screenupdating = False
使其更有效率。
试试这个:
Sub copyhighlight()
Dim rng As Range
Set rng = Range("A1", Range("A1").End(xlUp))
Dim lastrow As Long
lastrow = Range("A1").CurrentRegion.Rows.Count
Dim i As Long
Dim n As Long
Application.ScreenUpdating = False
n = 0
For i = 1 To lastrow
If rng.Cells(i, 1).Interior.Color = vbYellow Then
rng(i, 1).Copy
rng.Offset(n, 1).PasteSpecial xlPasteAll
n = n + 1
End If
Next i
Application.ScreenUpdating = True
End Sub