| ©«¤l5923 ¥DÃD13 ºëµØ1 ¿n¤À5986 ÂI¦W0  §@·~¨t²Îwin10 ³nÅ骩¥»Office 2010 ¾\ŪÅv150 ©Ê§O¨k ¨Ó¦Û¥xÆW°ò¶© µù¥U®É¶¡2010-5-1 ³Ì«áµn¿ý2022-1-23 
         
 | 
                
| ¦^´_ 14# lifedidi ªþÀɤ¤UserForm1ªºµ{¦¡½X
 ½Æ»s¥N½XPrivate Sub UserForm_Initialize()                   'ªí³æªì©l¤Æªºµ{§Ç
    Dim D As Object
    Set D = CreateObject("Scripting.Dictionary")    '¦r¨åª«¥ó
    Sheet2.Range("b1").CurrentRegion.Offset(1) = "" '¥ý²M°£ÂÂ¸ê®Æ
    With Sheet1
        .AutoFilterMode = False                     '¨ú®ø¦Û°Ê¿z¿ï¼Ò¦¡
        For Each A In .Range(.[A2], .[A2].End(xlDown))
            D(A.Value) = ""
        Next
        ComboBox1.List = D.KEYS                     '±M®×¿ï¶µ¤º®e
    End With
End Sub
Private Sub ComboBox1_Change()                      '±M®×¿ï¶µ¤º®e: ¦³§ïÅÜ
     With Sheet1
        .AutoFilterMode = False
        If ComboBox1.ListIndex > -1 Then
            ComboBox2¸ê®Æ
            .Range("a1").AutoFilter 1, ComboBox1    '¦Û°Ê¿z¿ï¼Ò¦¡:²Ä1Äæªº¿z¿ï·Ç«h¬° ComboBox1ªºÈ
        Else                                        '§ïÅܪº¤º®e¤£¦bList¤¤
            .Range("a1").AutoFilter 1, "<>"         '¦Û°Ê¿z¿ï¼Ò¦¡:²Ä1Äæªº¿z¿ï·Ç«h¬°¤£¬OªÅ¥ÕÄæ
            ComboBox2.Clear
        End If
        ¸ê®Æ½Æ»s
    End With
End Sub
Private Sub ComboBox2_Change()                      '±M®×¿ï¶µ¤º®e: ¦³§ïÅÜ
    If ComboBox2.ListIndex > -1 Then
        Sheet1.Range("a1").AutoFilter 2, ComboBox2  '¦Û°Ê¿z¿ï¼Ò¦¡:²Ä2Äæªº¿z¿ï·Ç«h¬° ComboBox2ªºÈ
    Else
        Sheet1.Range("a1").AutoFilter 2, "<>"       '¦Û°Ê¿z¿ï¼Ò¦¡:²Ä2Äæªº¿z¿ï·Ç«h¬°¤£¬OªÅ¥ÕÄæ
    End If
    ¸ê®Æ½Æ»s
End Sub
Private Sub ComboBox2¸ê®Æ()
    Dim D As Object, A
    Set D = CreateObject("Scripting.Dictionary")
    With Sheet1
        For Each A In .Range(.[A2], .[A2].End(xlDown))
            If A.Value = ComboBox1 Then D(A.Offset(, 1).Value) = ""
        Next
        If D.Count > 1 Then
            With .Columns(.Columns.Count).EntireColumn           'Sheet1ªº³Ì«á¤@Äæ
                .Clear
                .Cells(1).Resize(D.Count, 1).Value = Application.WorksheetFunction.Transpose(D.KEYS)
                '*** ±Æ§Ç
                .Cells(1).Resize(D.Count, 1).Sort Key1:=.Cells(1), Order1:=xlAscending, Header:= _
                    xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
                    SortMethod:=xlStroke, DataOption1:=xlSortNormal
                '*******
                ComboBox2.List = .Cells(1).Resize(D.Count, 1).Value  '¤uºØ¿ï¶µ¤º®e
                .Clear
            End With
        Else
            A = D.KEYS
            ComboBox2.AddItem A(0)
        End If
            ComboBox2.Value = ComboBox2.List(0)                  '¤uºØ¿ï¶µªºÈ
    End With
End Sub
Private Sub ¸ê®Æ½Æ»s()
    Dim Rng As Range
    Sheet2.Range("b1").CurrentRegion = ""             '¥ý²M°£ÂÂ¸ê®Æ
    Sheet1.Range("a1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy Sheet2.Range("b1")
    '½Æ»s:'¦Û°Ê¿z¿ï¥Xªº¸ê®Æ
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Sheet1.AutoFilterMode = False      'ªí³æÃö³¬«e¨ú®ø¦Û°Ê¿z¿ï¼Ò¦¡
End Sub
 | 
 |