Excel 实时突出显示单元格的副本--是否有此插件?
我试图在Excel中识别重复项。我可以使用标准excel工具突出显示列中的所有重复项Excel 实时突出显示单元格的副本--是否有此插件?,excel,vba,excel-formula,Excel,Vba,Excel Formula,我试图在Excel中识别重复项。我可以使用标准excel工具突出显示列中的所有重复项 理想情况下,我希望,比如说,在单元格A3中单击,让excel立即高亮显示A列中的所有实例,它们是A3的副本。这应该是“实时的”。如果你想用VBA解决这个问题,你可以尝试下面的方法,但正如PEH已经指出的那样,这对于大量数据来说并不理想 这必须应用于您正在使用的工作表,并假设您只评估A列 注意:双击工作表上的单元格时,它将检查A列 Private Sub Worksheet_BeforeDoubleClick(B
理想情况下,我希望,比如说,在单元格A3中单击,让excel立即高亮显示A列中的所有实例,它们是A3的副本。这应该是“实时的”。如果你想用VBA解决这个问题,你可以尝试下面的方法,但正如PEH已经指出的那样,这对于大量数据来说并不理想 这必须应用于您正在使用的工作表,并假设您只评估A列 注意:双击工作表上的单元格时,它将检查A列
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Name your sheet here
SheetName = "Sheet1"
'Work out how many rows there are in Column A
LastRow = Sheets(SheetName).Cells(Rows.Count, 1).End(xlUp).Row
'Copy current value to check later
CheckValue = Selection.Value
'Validate there is more than 1 filled cell
If LastRow > 1 Then
'Redim an array to hold all Column A data then load it to the array
ReDim DataArray(1 To LastRow) As Variant
DataArray = Range(Sheets(SheetName).Cells(1, 1), Sheets(SheetName).Cells(LastRow, 1))
'Clear previous highlighting
Range(Sheets(SheetName).Cells(1, 1), Sheets(SheetName).Cells(LastRow, 1)).Interior.Pattern = xlNone
'loop through array highlighting cells that match the "CheckValue"
For I = 1 To LastRow
If DataArray(I, 1) = CheckValue Then
Sheets(SheetName).Cells(I, 1).Interior.ColorIndex = 4
End If
Next I
End If
End Sub
这可能是一个更优雅的解决方案。如果您想要一个VBA解决方案来解决这个问题,您可以尝试下面的方法,但正如PEH已经指出的,这对于大量数据来说并不理想 这必须应用于您正在使用的工作表,并假设您只评估A列 注意:双击工作表上的单元格时,它将检查A列
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Name your sheet here
SheetName = "Sheet1"
'Work out how many rows there are in Column A
LastRow = Sheets(SheetName).Cells(Rows.Count, 1).End(xlUp).Row
'Copy current value to check later
CheckValue = Selection.Value
'Validate there is more than 1 filled cell
If LastRow > 1 Then
'Redim an array to hold all Column A data then load it to the array
ReDim DataArray(1 To LastRow) As Variant
DataArray = Range(Sheets(SheetName).Cells(1, 1), Sheets(SheetName).Cells(LastRow, 1))
'Clear previous highlighting
Range(Sheets(SheetName).Cells(1, 1), Sheets(SheetName).Cells(LastRow, 1)).Interior.Pattern = xlNone
'loop through array highlighting cells that match the "CheckValue"
For I = 1 To LastRow
If DataArray(I, 1) = CheckValue Then
Sheets(SheetName).Cells(I, 1).Interior.ColorIndex = 4
End If
Next I
End If
End Sub
这可能是一个更优雅的解决方案。快速且肮脏,请将其放置在“需要的工作表代码”窗格中:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column > 1 Then Exit Sub
Dim cellsToHighlight As Range, cell As Range
Set cellsToHighlight = Range("B1")
For Each cell In Range("A1", Cells(Rows.Count, 1).End(xlUp))
If cell.Value2 = Target.Value2 Then Set cellsToHighlight = Union(cellsToHighlight, cell)
Next
Set cellsToHighlight = Intersect(cellsToHighlight, Columns(1))
If Not cellsToHighlight Is Nothing Then cellsToHighlight.Select
End Sub
又快又脏,请将其放置在“通缉表代码”窗格中:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column > 1 Then Exit Sub
Dim cellsToHighlight As Range, cell As Range
Set cellsToHighlight = Range("B1")
For Each cell In Range("A1", Cells(Rows.Count, 1).End(xlUp))
If cell.Value2 = Target.Value2 Then Set cellsToHighlight = Union(cellsToHighlight, cell)
Next
Set cellsToHighlight = Intersect(cellsToHighlight, Columns(1))
If Not cellsToHighlight Is Nothing Then cellsToHighlight.Select
End Sub
对“重复值”使用条件格式
对“重复值”使用条件格式
Excel的条件格式功能可以轻松地识别列表中的重复值:。任何在“实时”中对每个单元格选择进行更改的操作都会大大降低Excel的速度。根据数据量的不同,它将不再可用。下面是另一个很好的资源,并提供了许多示例:Excel的条件格式功能可以轻松识别列表中的重复值:。任何在“实时”中对每个单元格选择进行更改的操作都会大大降低Excel的速度。根据数据量的不同,它将不再可用。这里有另一个很好的资源,有很多例子:效果很好,但我理解性能是一个问题。。。无论如何,谢谢你,这有助于加快速度!工作很好,但我理解性能是一个问题。。。无论如何,谢谢你,这有助于加快速度!