返回列表 上一主題 發帖

[發問] .RefersTo 可否有篩選能力

[發問] .RefersTo 可否有篩選能力

請教大大:
程式語法如下,如果ListBox2想要有篩選之後呈現
例如第四欄位為姓名(TextBox4) ,like TextBox4 均list 於 ListBox2
應如何寫?
Sub showlastdatas()
    Dim str1 As String
    wb3.Activate
    str1 = Left(TextBox31, 5) & CommandButton4.Caption
    With Sheets(str1)
        row1 = .Cells(65536, 4).End(xlUp).Row
        If row1 < 2 Then Exit Sub
        Dim mystr As String
        With Application.Names.Add("Tmp2", .Range(.Cells(2, 1), .Cells(row1, 24)))
            mystr = .RefersTo
            .Delete
        End With
        ListBox2.RowSource = ""
        With ListBox2
            .ColumnCount = 24
            .ColumnWidths = "78pt;60pt;80pt;70pt;40pt;105pt;90pt;115pt;90pt;90pt;90pt;70pt;70pt;80pt;90pt;90pt;90pt;120pt;120pt;120pt;80pt;120pt;80pt;60pt"
            .RowSource = mystr
            .ColumnHeads = True
            .ListIndex = ListBox2.ListCount - 1
        End With
    End With
End Sub
感謝指導

本帖最後由 yangjie 於 2021-1-14 22:46 編輯

我想可能諸位大大不懂我的困擾所在
Dim mystr As String
        With Application.Names.Add("Tmp2", .Range(.Cells(2, 1), .Cells(row1, 24)))
              'Tmp2是全部資料,而我要的是含部分條件之資料
            'Tmp2在Range(.Cells(2, 1), .Cells(row1, 24))之中篩選出.cell(ii,4)=Textbox4的每一列
            '是否應先篩選到另一個sheets然後再mystr = .RefersTo
            mystr = .RefersTo
            .Delete
        End With
        ListBox2.RowSource = ""
        With ListBox2
            .ColumnCount = 24
            .ColumnWidths = "78pt;60pt;80pt;70pt;..........."
            .RowSource = mystr
            .ColumnHeads = True
            .ListIndex = ListBox2.ListCount - 1
        End With
    End With
敬請指導 不勝感激

TOP

回復 2# yangjie


將符合textbox4的資料掃進新的陣列或字典中,
再將陣列清單塞進list中~~

TOP

回復 3# 准提部林
謝謝版主大大
   列陣 我尚未精熟摸索中 而字典不是找索引相異嗎
   可否做個範例 讓我學一學
學號在第四欄 Data共24欄   而第25欄為該列之rows   依學號 找相似於
應如何塞入Dictionary
再 D= .refersTo


真的懇請指導後學

TOP

回復 4# yangjie


關于任何問題, 得上傳檔案, 才能做問題研判及測試.

TOP

        靜思自在 : 原諒別人就是善待自己。
返回列表 上一主題