VBA 在Excel中如何按条件显示一列中不重复的值

时间:2022-03-31 00:49:48
例如如下的表
A     B     C  
1     ff    yh
2     g     h   
3     y     y
4     y     y
5     g     h
4     y     h
7     y     y 
1     g      g
9    t      ty

查找列A的小于5的记录(不重复),结果为
A
1
2
3
4


6 个解决方案

#1


EXCEL本身的功能:高級篩選。

#2


Private Sub CommandButton1_Click()
    finalrow = Range("E65536").End(xlUp).Row
    Range("E1").Value = Range("A1").Value
    Range("A1").CurrentRegion.AdvancedFilter xlFilterCopy, _
        Copytorange:=Range("E1"), Unique:=True
    For i = 2 To finalrow
        If Cells(i, 5).Value > 5 Then
            Cells(i, 5).Value = ""
        End If
    Next i
End Sub

#3


我加了列名(序号 值1 值2)
试验数据如下
A     B     C  
序号 值1   值2
1     ff    yh
2     g     h   
3     y     y
4     y     y
5     g     h
4     y     h
7     y     y 
1     g      g
9    t      ty

#4


sorry!finalrow的位置错了,改成下面这个样子才完全
Private Sub CommandButton1_Click()
    
    Range("E1").Value = Range("A1").Value
    Range("A1").CurrentRegion.AdvancedFilter xlFilterCopy, _
        Copytorange:=Range("E1"), Unique:=True
    finalrow = Range("E65536").End(xlUp).Row
    For i = 2 To finalrow
        If Cells(i, 5).Value > 5 Then
            Cells(i, 5).Value = ""
        End If
    Next i
End Sub

#5


Sub 显示制定列中不重复的值()
'
' 在另外一列中显示制定列中不重复的值
'
'选中A列所有内容
'筛选不重复的值,复制到 E 列中
    Range("A2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range("A1:A16").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
        "E1:E17"), Unique:=True
End Sub

#6


其实就是筛选,现有的功能!

#1


EXCEL本身的功能:高級篩選。

#2


Private Sub CommandButton1_Click()
    finalrow = Range("E65536").End(xlUp).Row
    Range("E1").Value = Range("A1").Value
    Range("A1").CurrentRegion.AdvancedFilter xlFilterCopy, _
        Copytorange:=Range("E1"), Unique:=True
    For i = 2 To finalrow
        If Cells(i, 5).Value > 5 Then
            Cells(i, 5).Value = ""
        End If
    Next i
End Sub

#3


我加了列名(序号 值1 值2)
试验数据如下
A     B     C  
序号 值1   值2
1     ff    yh
2     g     h   
3     y     y
4     y     y
5     g     h
4     y     h
7     y     y 
1     g      g
9    t      ty

#4


sorry!finalrow的位置错了,改成下面这个样子才完全
Private Sub CommandButton1_Click()
    
    Range("E1").Value = Range("A1").Value
    Range("A1").CurrentRegion.AdvancedFilter xlFilterCopy, _
        Copytorange:=Range("E1"), Unique:=True
    finalrow = Range("E65536").End(xlUp).Row
    For i = 2 To finalrow
        If Cells(i, 5).Value > 5 Then
            Cells(i, 5).Value = ""
        End If
    Next i
End Sub

#5


Sub 显示制定列中不重复的值()
'
' 在另外一列中显示制定列中不重复的值
'
'选中A列所有内容
'筛选不重复的值,复制到 E 列中
    Range("A2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range("A1:A16").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
        "E1:E17"), Unique:=True
End Sub

#6


其实就是筛选,现有的功能!