Vba 自动高亮显示具有各种颜色的重复值
我有这些电子表格文件供逾期付款者使用(通常每月20多个)。我想做的是能够自动格式化不同颜色的重复值。以下是我使用的VBA代码(来自其他站点): 这是一个示例文件: 我遇到的问题是:Vba 自动高亮显示具有各种颜色的重复值,vba,excel,conditional-formatting,Vba,Excel,Conditional Formatting,我有这些电子表格文件供逾期付款者使用(通常每月20多个)。我想做的是能够自动格式化不同颜色的重复值。以下是我使用的VBA代码(来自其他站点): 这是一个示例文件: 我遇到的问题是: 我的范围是A2:L50,但它用红色表示空白单元格(虽然我已经用条件格式化值固定了它)() 当我进行更改时,它不会自动运行VBA或使格式重复单元格,每次更改后我都必须手动运行模块 我不能给每个人分配颜色,因为我们有100多人在为我们租房 不管怎样,我希望有人能帮我解决这个问题。提前谢谢 能否在助手列B中执行以下操
- 我的范围是A2:L50,但它用红色表示空白单元格(虽然我已经用条件格式化值固定了它)( )
- 当我进行更改时,它不会自动运行VBA或使格式重复单元格,每次更改后我都必须手动运行模块
- 我不能给每个人分配颜色,因为我们有100多人在为我们租房
不管怎样,我希望有人能帮我解决这个问题。提前谢谢 能否在助手列B中执行以下操作,然后在该列上使用条件格式>颜色比例 要向下拖动的公式(根据需要修改范围) 数据布局:
能否在助手列B中执行以下操作,然后在该列上使用条件格式>颜色比例 要向下拖动的公式(根据需要修改范围) 数据布局:
回答您的3个问题
测试空单元格,如果是xCell.Value vbNullString,则使用
(请参阅下面的代码)If xCIndex > 56 Then xCIndex = 2 '(see code below)
所以颜色不再是独一无二的了
但你应该大体考虑一下。因为使用超过10或15种颜色并不能使工作表更清晰。如果有超过10种颜色,我看不出不同颜色有任何好处但是您可以尝试在
工作表\u Change
事件中运行它。但我觉得那太慢了
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
ColorCompanyDuplicates
End Sub
如果自动运行,可能需要删除对话框并在重新着色之前删除着色:
Set xRg = Range(xTxt) 'replace the original "Set xRg" line
If xRg Is Nothing Then Exit Sub
xRg.Interior.ColorIndex = xlNone 'remove old coloring
这是从1和2更改的代码部分:
If xCell.Value <> vbNullString Then 'skip coloring empty cells
xCol.Add xCell, xCell.Text
If Err.Number = 457 Then
xCIndex = xCIndex + 1
If xCIndex > 56 Then xCIndex = 2 'start re-using colors
Set xCellPre = xCol(xCell.Text)
If xCellPre.Interior.ColorIndex = xlNone Then xCellPre.Interior.ColorIndex = xCIndex
xCell.Interior.ColorIndex = xCellPre.Interior.ColorIndex
ElseIf Err.Number = 9 Then
MsgBox "Too many duplicate companies!", vbCritical, "Kutools for Excel"
Exit Sub
End If
End If
如果是xCell.Value vbNullString,则“跳过为空单元格着色”
添加xCell,xCell.Text
如果错误编号=457,则
xindex=xindex+1
如果xindex>56,则xindex=2'开始重新使用颜色
设置xCellPre=xCol(xCell.Text)
如果xCellPre.Interior.ColorIndex=xlNone,则xCellPre.Interior.ColorIndex=xcdex
xCell.Interior.ColorIndex=xCellPre.Interior.ColorIndex
ElseIf Err.Number=9,则
MsgBox“重复公司太多!”,vbCritical,“Kutools for Excel”
出口接头
如果结束
如果结束
回答您的3个问题
测试空单元格,如果是xCell.Value vbNullString,则使用
(请参阅下面的代码)If xCIndex > 56 Then xCIndex = 2 '(see code below)
所以颜色不再是独一无二的了
但你应该大体考虑一下。因为使用超过10或15种颜色并不能使工作表更清晰。如果有超过10种颜色,我看不出不同颜色有任何好处但是您可以尝试在
工作表\u Change
事件中运行它。但我觉得那太慢了
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
ColorCompanyDuplicates
End Sub
如果自动运行,可能需要删除对话框并在重新着色之前删除着色:
Set xRg = Range(xTxt) 'replace the original "Set xRg" line
If xRg Is Nothing Then Exit Sub
xRg.Interior.ColorIndex = xlNone 'remove old coloring
这是从1和2更改的代码部分:
If xCell.Value <> vbNullString Then 'skip coloring empty cells
xCol.Add xCell, xCell.Text
If Err.Number = 457 Then
xCIndex = xCIndex + 1
If xCIndex > 56 Then xCIndex = 2 'start re-using colors
Set xCellPre = xCol(xCell.Text)
If xCellPre.Interior.ColorIndex = xlNone Then xCellPre.Interior.ColorIndex = xCIndex
xCell.Interior.ColorIndex = xCellPre.Interior.ColorIndex
ElseIf Err.Number = 9 Then
MsgBox "Too many duplicate companies!", vbCritical, "Kutools for Excel"
Exit Sub
End If
End If
如果是xCell.Value vbNullString,则“跳过为空单元格着色”
添加xCell,xCell.Text
如果错误编号=457,则
xindex=xindex+1
如果xindex>56,则xindex=2'开始重新使用颜色
设置xCellPre=xCol(xCell.Text)
如果xCellPre.Interior.ColorIndex=xlNone,则xCellPre.Interior.ColorIndex=xcdex
xCell.Interior.ColorIndex=xCellPre.Interior.ColorIndex
ElseIf Err.Number=9,则
MsgBox“重复公司太多!”,vbCritical,“Kutools for Excel”
出口接头
如果结束
如果结束
请验证我是否正确格式化了您的代码。在打开下一个新的On Error Resume之前,顶部还有一个On Error(开启错误)未关闭。不确定是否需要第二个,但第一个需要关闭。我试过了,它不起作用。您好,您是说格式已经更改了一些内容(我希望不应该更改,但我可以回滚更改),还是说更改错误部分意味着已停止工作?我只更改了代码的间距和缩进。我没有添加或修改任何功能。使用VBA有什么原因吗?为什么不立即自动使用?请验证我是否已正确格式化了您的代码。在打开下一个新的On Error Resume之前,顶部还有一个On Error未关闭的On Error。不确定是否需要第二个,但第一个需要关闭。我试过了,它不起作用。您好,您是说格式已经改变了一些东西(它不应该有…我希望。但我可以回滚)