返回列表 上一主題 發帖

[發問] 可自定表單 全文檢索?

回復 12# dafa
你不做個範例上傳,真的不知要如何回答.

TOP

全文檢索1.zip (674.17 KB) 回復 13# GBKEE


    如附件
請問G大
可否連同B.C.D欄內資料一同顯示在ListBox1與Label2內
感謝你

TOP

回復 14# dafa
  1. Private Sub UserForm_Initialize()
  2.      With ListBox1
  3.         .Visible = False
  4.         .ColumnCount = 4                '指定下拉式清單方塊或清單方塊的顯示行數。
  5.         .ColumnWidths = "370,40,40,40"  '指定多行下拉式清單方塊或清單方塊中的各行寬度。
  6.     End With
  7. End Sub
  8. Private Sub ListBox1_Change()
  9.     AA = Application.Index(ListBox1.List, ListBox1.ListIndex + 1)  '陣列中抽出指定的元素陣列(這裡是一維陣列)
  10.     Label2.Caption = "[" & Join(AA, "] ; [") & "]"                  'Join 結合一維陣列的文字
  11. End Sub
  12. Private Sub TextBox1_Change()
  13.     Dim Ar(), E As Range
  14.     If TextBox1 <> "" Then
  15.         ReDim Ar(0)
  16.         For Each E In Sheet1.UsedRange.Columns(1).Cells
  17.             If E Like "*" & TextBox1 & "*" Then
  18.                 Ar(UBound(Ar)) = E.Resize(, 4).Value
  19.                 ReDim Preserve Ar(UBound(Ar) + 1)
  20.             End If
  21.         Next
  22.         If UBound(Ar) > 0 Then
  23.             ReDim Preserve Ar(UBound(Ar) - 1)
  24.             Ar = Application.Transpose(Application.Transpose(Ar))
  25.             ListBox1.List = Ar
  26.             ListBox1.Visible = True
  27.         Else
  28.             Label2.Caption = ""
  29.             ListBox1.Visible = False
  30.         End If
  31.     Else
  32.         Label2.Caption = ""
  33.         ListBox1.Visible = False
  34.     End If
  35. End Sub
複製代碼

TOP

回復 15# GBKEE


    很感謝G大那麼不厭其煩的回覆
還附註那麼清楚
趕快去研究消化一下
感恩喔

TOP

回復 15# GBKEE
  1. Private Sub UserForm_Initialize()
  2.      With ListBox1
  3.         .Visible = False
  4.         .ColumnCount = 4                '指定下拉式清單方塊或清單方塊的顯示行數。
  5.         .ColumnWidths = "370,40,40,40"  '指定多行下拉式清單方塊或清單方塊中的各行寬度。
  6.     End With
  7. End Sub
  8. Private Sub ListBox1_Change()
  9.     AA = Application.Index(ListBox1.List, ListBox1.ListIndex + 1)  '陣列中抽出指定的元素陣列(這裡是一維陣列)
  10.     Label2.Caption = "[" & Join(AA, "] ; [") & "]"                  'Join 結合一維陣列的文字
  11. End Sub
  12. Private Sub TextBox1_Change()
  13.     Dim Ar(), E As Range
  14.     If TextBox1 <> "" Then
  15.         ReDim Ar(0)
  16.         For Each E In Sheet1.UsedRange.Columns(1).Cells
  17.             If E Like "*" & TextBox1 & "*" Then
  18.                 Ar(UBound(Ar)) = E.Resize(, 4).Value
  19.                 ReDim Preserve Ar(UBound(Ar) + 1)
  20.             End If
  21.         Next
  22.         If UBound(Ar) > 0 Then
  23.             ReDim Preserve Ar(UBound(Ar) - 1)
  24.             Ar = Application.Transpose(Application.Transpose(Ar))   '可以麻煩G大幫我解釋這句為何要轉置再轉置   感謝      
  25.    ListBox1.List = Ar
  26.             ListBox1.Visible = True
  27.         Else
  28.             Label2.Caption = ""
  29.             ListBox1.Visible = False
  30.         End If
  31.     Else
  32.         Label2.Caption = ""
  33.         ListBox1.Visible = False
  34.     End If
  35. End Sub
複製代碼

TOP

回復 17# dafa
  1. If E Like "*" & TextBox1 & "*" Then     
  2.                 Ar(UBound(Ar)) = E.Resize(, 4).Value  '***一維陣列Ar 加入子元素 -> E.Resize(, 4).Value  ※此子元素 是為( 1, 4 )二維陣列                 ReDim Preserve Ar(UBound(Ar) + 1)
複製代碼
  1. If UBound(Ar) > 0 Then
  2.             ReDim Preserve Ar(UBound(Ar) - 1)
  3.             'Ar = Application.Transpose(Application.Transpose(Ar))
  4.             Ar = Application.Transpose(Ar) '第一次轉置  得到的是 整欄資料
  5.             Ar = Application.Transpose(Ar) '第二次轉置 得到的是  整列資料   
複製代碼

TOP

回復 18# GBKEE


    感謝G大的解釋
如本範例
在請問G大如果我ListBox1屬性設定可複選
但我要如何將ListBox1所有挑選的資料放到Label2呢

TOP

版主大大您好:

請問如何能讓全文檢索表單的
Listbox也能具有左右捲動功能呢?

感謝您!

TOP

回復 20# dechiuan999


    只要你的 ListBox屬性Width<ColumnWidths就應該會自己出現了

TOP

dafa 大大您好:

謝謝您的說明。
感恩!

TOP

        靜思自在 : 人事的艱難與琢磨,就是一種考驗。
返回列表 上一主題