我正在寻找一个vba代码片段来帮助我入门。
我的一个工作表中有一列有值(非唯一)。从这一栏我需要
使用原始单元格中的格式替换整个工作簿中具有相同值的所有找到的单元格,或者
如果单元格没有背景颜色,则为其指定新的唯一颜色背景(唯一基于列中的先前单元格),并使用此格式查找并替换整个工作簿中的所有单元格。
我不相信我可以使用条件格式化,因为我有太多符合标准的单元格,并且它会降低速度,降低到不可接受的速度。
答案 0 :(得分:0)
好的,基于之前的评论,这是我到目前为止所做的。
Sub FormatFill()
Dim sRng As Range
Dim cCell As Range
Dim nCell As Range
Dim bClr, lVal
Application.ScreenUpdating = False
Range("B1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Set sRng = Selection
'Fill all legend formats
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
For Each cell In Selection
lVal = cell.Value
bClr = cell.Interior.Color
Set cCell = sRng.Find(What:=lVal, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
If Not cCell Is Nothing Then
Set nCell = cCell
Do
cCell.Interior.Color = bClr
Set cCell = sRng.FindNext(After:=cCell)
If Not cCell Is Nothing Then
If cCell.Address = nCell.Address Then Exit Do
Else
Exit Do
End If
Loop
End If
Next
Application.ScreenUpdating = True
End Sub
我仍在研究如何捕获并为工作簿的其余部分分配其他值的唯一颜色。