返回列表 上一主題 發帖

[發問] 如何讓Listbox可一併顯示工作表的表頭呢?

[發問] 如何讓Listbox可一併顯示工作表的表頭呢?

各位大大好:

   小弟想利用Combobox1_Change方式
選取指定姓名並取出姓名一定範圍內
的資料。現已達成取出資料的問題。
但有一問題仍無法突破,就是表頭如
何也能同時一併和取出資料顯示在Listbox1內呢?

Private Sub ComboBox1_Change()
    Dim mSht As Worksheet
    Dim mAr
    Dim s$, j%, m%
    Dim mStr$, mStr1$
    Dim mRng
    Dim mRng1 As Range   
   
    Set mSht = Worksheets("L_Data01")
    With mSht        
        With ComboBox1
            .Width = .Width * 0.5
            .ColumnCount = 1
            mAr = .List
            .Value = .List(.ListIndex)
            mStr = .Value
        End With        
        
        Set mRng1 = .Columns("c").Find(what:=mStr, lookat:=xlWhole, searchorder:=xlByRows)
        If Not mRng1 Is Nothing Then
            m = mRng1.Row
        Else
            MsgBox "請先選取指定姓名"
            Exit Sub
        End If        
        mRng = .Range("a" & m).Resize(6, 8)        
        With ListBox1
            .Width = .Width * 1
            .ColumnCount = 8
            .ColumnHeads = True   '工作表的第一列表頭無法顯示
            .List = mRng
        End With        
    End With      
End Sub

謝謝各位大大。

Sample050.rar (15.76 KB)

謝謝版主大大。

   小弟引用版主大大的語法,
已測試成功。

   但其中語法看了說明
也是不得其門而入。

其語法如下:

mRng.Address(, , , 1, 1)

不知能否請版大大也能對此語
法詳加說明,日後小弟也有機
會能加以應用呢?

另小弟也稍加修正語法,
能與各位分享。

語法如下:

  .Range("IO1").CurrentRegion = ""
        .Range("a" & m).Resize(6, 8).Copy .Range("IO2")
         Set mRng = .Range("IO2").CurrentRegion      
        
        .[A1:H1].Copy .[IO1]        
        With Application.Names.Add("tmp", RefersTo:=mRng)
            mStr1 = .RefersTo
            .Delete
        End With
        
        With ListBox1
            .Width = .Width * 1
            .ColumnCount = 8
            .ColumnHeads = True
            '.RowSource = mRng.Address(, , , 1, 1)
            .RowSource = mStr1
            .ColumnHeads = True
        End With

感恩版主大大。

TOP

謝謝二位版主大大。

感恩大大!

TOP

        靜思自在 : 【行善要及時】行善要及時,功德要持續。如燒開水一般,未燒開之前千萬不要停熄火候,否則重來就太費事了。
返回列表 上一主題