ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[µo°Ý] vba¤¤listbox¦p¦ó·s¼W¤£³sÄò¤§¦hÄæ¸ê®Æ

[µo°Ý] vba¤¤listbox¦p¦ó·s¼W¤£³sÄò¤§¦hÄæ¸ê®Æ

¦U¦ì¦n¡G
                §Úªº¤u§@ªí¸ê®Æ¤j·§¦p¤U¡G(©êºp¦]¸ê®Æ¯A¤Î¤½¥q¾÷±K¡A¸ê®Æ³Q¤½¥q¹q¸£Âê¦í¡A®¤µLªk¤W¶ÇÀÉ®×)
                ¼ÐÃD1             ¼ÐÃD2             ¼ÐÃD3                        ¼ÐÃD4                      ¼ÐÃD5
                1399741      XXXXXXX      YYYYYYYYYYY      ZZZZZZZZZZ      WWWWWWW
                1213994      XXXXXX1      YYYYYYYYYY1      ZZZZZZZZZ1      WWWWWW1
                1234567      XXXXXX2      YYYYYYYYYY2      ZZZZZZZZZ2      WWWWWW2
                2345678      XXXXXX3      YYYYYYYYYY3      ZZZZZZZZZ3      WWWWWW3
                2139901      XXXXXX4      YYYYYYYYYY4      ZZZZZZZZZ4      WWWWWW4

§Ú§Æ±æ°µ¨ìLISTBOXT¥i¥H¨Ì³]©wªº±ø¥ó¦p¼ÐÃD1¤¤¥]§t1399ªº¸ê®Æ¦bLISTBOX ¨Ì§Ç¥[¤J¦p¤U¡G
                  ¼ÐÃD1             ¼ÐÃD2             ¼ÐÃD3                        ¼ÐÃD4                      ¼ÐÃD5
                1399741      XXXXXXX      YYYYYYYYYYY      ZZZZZZZZZZ      WWWWWWW
                1213994      XXXXXX1      YYYYYYYYYY1      ZZZZZZZZZ1      WWWWWW1
                2139901      XXXXXX4      YYYYYYYYYY4      ZZZZZZZZZ4      WWWWWW4
·Q½Ð°Ý°£¤F¥Î¦Û°Ê¿z¿ï¥~¡A¥i¥H¥ÎLISTBOX,ADDITEM©Î¬OLISTBOX.LIST¨Ó§¹¦¨¶Ü¡H
¸Õ¤F«Ü¦h¦¸¡A³£¥u·|Âл\²Ä¤@¦C¸ê®Æ¡A¦ÓµLªk¨Ì§Ç·s¼W¡A½Ð¦U¦ì°ª¤âÀ°À°¦£¡A½¤F¤­¥»¬ÛÃöVBAªº®Ñ³£¼g
±o¤£¬O«Ü²M·¡¡A½Ð¦U¦h¦hÀ°¦£¤F¡AÁÂÁ¡I

  1. Private Sub UserForm_Initialize()
  2.     Dim arr(), rng, i%, j%, m%
  3.     Me.ListBox1.ColumnCount = 5
  4.     Me.ListBox1.ColumnWidths = "60,60,60,60,60"

  5.     rng = [a1].CurrentRegion
  6.     For i = 1 To UBound(rng)
  7.         If i = 1 Or rng(i, 1) Like "*1399*" Then
  8.             m = m + 1
  9.             ReDim Preserve arr(1 To 5, 1 To m)
  10.             For j = 1 To 5
  11.                 arr(j, m) = rng(i, j)
  12.             Next
  13.         End If
  14.     Next
  15.     Me.ListBox1.List() = Application.Transpose(arr)

  16. End Sub
½Æ»s¥N½X

TOP

¦^´_ 1# zming0304
  1. Option Explicit
  2. Sub Ex()
  3.     Dim E, i
  4.     With ListBox1
  5.         .Clear
  6.         .ColumnCount = 5
  7.         .ColumnWidths = "60,60,60,60,60"
  8.         For Each E In Range("a1").CurrentRegion.Columns(1).Cells
  9.             If InStr(E.Text, "139") Then
  10.                 '.AddItem  E        '¨t²Î¹w³]¬°ColumnCount = 1Äæ ­n¥[¤J¸ê®Æ¦p¦¹°µ´N¦n
  11.                 .AddItem            'ListBox1·s¼W¤@¦C : .ListCount -> ListBox1ªº¦C¼Æ
  12.                 For i = 0 To 4     'ColumnCount >1 ¬G¶·¦b·s¼W¦C¤¤¨C¤@Äæ¨Ì§Ç¥[¤J¼Æ¦r¤å¦r
  13.                     .List(.ListCount - 1, i) = E(1, i + 1)  'ListBox1ªº¦C±q0¶}©l
  14.                 Next
  15.             End If
  16.         Next
  17.     End With
  18. End Sub
½Æ»s¥N½X

TOP

RE: vba¤¤listbox¦p¦ó·s¼W¤£³sÄò¤§¦hÄæ¸ê®Æ

¦^´_  zming0304
GBKEE µoªí©ó 2011-11-26 10:40


¤Ó¼F®`¤F¡A¯uªº¥i¥H¤F¡AÁÂÁ¤j¤j¡I

TOP

¦^´_ 3# GBKEE
¤j¤j¡A¥i¤£¥i¥H¦AÀ°§Ú¤@¤U¡A¦pªG§Ú¬O·j´M²Ä¤GÄæ~²Ä¤­Ä檺¸ê®Æ¡A
µ{¦¡½X­n¦p¦ó­×§ï¤~¯àÅý·s¼Wªº¸ê®Æ±q²Ä¤@Äæ¶}©l¼g¤JLISTBOX¤¤¡A
For Each E In MYRNG
            If InStr(E.Text, CN) Then
                '.AddItem  E        '¨t²Î¹w³]¬°ColumnCount = 1Äæ ­n¥[¤J¸ê®Æ¦p¦¹°µ´N¦n
                LBMODEL.AddItem            'ListBox1·s¼W¤@¦C : .ListCount -> ListBox1ªº¦C¼Æ
                For j = -2 To 3
                J1 = (E.Offset(0, j))
                For i = 0 To 4   'ColumnCount >1 ¬G¶·¦b·s¼W¦C¤¤¨C¤@Äæ¨Ì§Ç¥[¤J¼Æ¦r¤å¦r
                LBMODEL.List(LBMODEL.ListCount - 1, i) = E(J1, i + 1) 'ListBox1ªº¦C±q0¶}©l
                Next
                Next
            ElseIf Left(E.Text, 4) > CN Then
                Exit For
            End If
          Next
§Ú³o¼Ë§ï¼g«o¤@ª½¥X²{¿ù»~¡A½Ð°Ý°ÝÃD¥X¦b¨ºÃä¡A¦A³Â·ÐÀ°§Ú°»¿ù¤@¤U¡AÁÂÁ¡I

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2011-11-28 17:27 ½s¿è

¦^´_ 5# zming0304
  1. For Each E In MYRNG
  2.             If InStr(E.Text, CN) Then
  3.                 '.AddItem  E        '¨t²Î¹w³]¬°ColumnCount = 1Äæ ­n¥[¤J¸ê®Æ¦p¦¹°µ´N¦n
  4.               ''****->§R±¼  LBMODEL.AddItem            'ListBox1·s¼W¤@¦C : .ListCount -> ListBox1ªº¦C¼Æ  *****
  5.                 For j = -2 To 3
  6.                          LBMODEL.AddItem            ''¨Ì§Aªº¥Î·N,  À³¬O¦b³o¸Ì ·s¼W¤@¦C
  7.                        J1 = (E.Offset(0, j))
  8.                       For i = 0 To 4   'ColumnCount >1 ¬G¶·¦b·s¼W¦C¤¤¨C¤@Äæ¨Ì§Ç¥[¤J¼Æ¦r¤å¦r
  9.                 LBMODEL.List(LBMODEL.ListCount - 1, i) = E(J1, i + 1) 'ListBox1ªº¦C±q0¶}©l
  10.                 Next
  11.                 Next
  12.             ElseIf Left(E.Text, 4) > CN Then
  13.                 Exit For
  14.             End If
  15.           Next
½Æ»s¥N½X

TOP

¦^´_ 6# GBKEE
For S = 1 To Workbooks("MODELNUM.xls").Sheets.Count
    Sheets(S).Activate
    Range(Cells(1, 1), Cells(65536, 5).End(xlUp)).Select
    Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
        :=xlStroke, DataOption1:=xlSortNormal
    Sheets(S).Range(Cells(1, 1), Cells(1, 5)).Select
    CN = TBCHNM.Text
      Set CN1 = Cells.Find(CN, LOOKAT:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext)
      If Not CN1 Is Nothing Then
          'G = 1
          LBMODEL.ColumnCount = ActiveSheet.Columns.Count
          LBMODEL.ColumnWidths = "2cm;3.5cm;5cm;6.5cm;5cm"
          LBMODEL.Font.Size = 10
          LBMODEL.List = Range("A1:E1").Value
         
          Set MYRNG = Range(CN1, Range("C65536").End(xlUp))
          For Each E In MYRNG
            If InStr(E.Text, CN) Then
                '.AddItem  E        '¨t²Î¹w³]¬°ColumnCount = 1Äæ ­n¥[¤J¸ê®Æ¦p¦¹°µ´N¦n
                LBMODEL.AddItem            'ListBox1·s¼W¤@¦C : .ListCount -> ListBox1ªº¦C¼Æ
               
                For J = -2 To 3
               ' LBMODEL.AddItem
                For i = 0 To 4   'ColumnCount >1 ¬G¶·¦b·s¼W¦C¤¤¨C¤@Äæ¨Ì§Ç¥[¤J¼Æ¦r¤å¦r
                'LBMODEL.AddItem
                J1 = (E.Offset(0, J))
                LBMODEL.List(LT - 1, i) = J1 'ListBox1ªº¦C±q0¶}©l
                J = J + 1
                Next
                Next
             ElseIf Left(E.Text, Len(CN)) <> CN Then
                Exit For
            End If
          Next
      'ElseIf CN1 Is Nothing And G = 0 Then
        ' MsgBox "¬dµL¦¹®Æ¸¹"
      End If
Next
¤j¤j§Ú§â³¡¤À§ï¼g¦¨¬õ¦â³¡¤À´N¥i¥H¤F¡A¦ý¤S¥X²{¥t¥~¤@­Ó°ÝÃD¡A´N¬O§Úªº¸ê®Æªí¦Ü¤Ö¦³¤T­Ó¡A¦ý§Ú¥Ø«e³o¼Ë¼g¡A
µ{¦¡¶]¥X¨Óªºµ²ªGLISTBOX¥u«O¯d³Ì¤@­Ó¸ê®Æªí·j´M¨ìªºµ²ªG¡A«e¤G­Ó¸ê®Æªí§ä¨ìªºµ²ªG²Î²Î³QÂл\¤F¡A³o­n¦p¦ó­×¥¿©O¡H
¦A³Â·Ð§A±Ð§Ú¤@¤U¡AÁÂÁ¡I

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2011-11-29 13:31 ½s¿è

¦^´_ 7# zming0304
«e¤G­Ó¸ê®Æªí§ä¨ìªºµ²ªG²Î²Î³QÂл\¤F
LBMODEL.ColumnCount = ActiveSheet.Columns.Count  :  2003-> Columns.Count=256
  1. With LBMODEL   '¶}ÀY³o¸Ì­«³]LBMODELªº¤º®e
  2.         .ColumnCount = ActiveSheet.Columns.Count
  3.         .ColumnWidths = "2cm;3.5cm;5cm;6.5cm;5cm"
  4.         .Font.Size = 10
  5.         .Clear
  6.     End With
  7.     For S = 1 To Workbooks("MODELNUM.xls").Sheets.Count
  8.         Sheets(S).Activate
  9.         Set CN1 = Cells.Find(CN, LOOKAT:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext)
  10.         If Not CN1 Is Nothing Then
  11.           '
  12.           'G = 1
  13.           'LBMODEL.ColumnCount = ActiveSheet.Columns.Count
  14.           'LBMODEL.ColumnWidths = "2cm;3.5cm;5cm;6.5cm;5cm"
  15.           'LBMODEL.Font.Size = 10
  16.           'LBMODEL.List = Range("A1:E1").Value   '<- ³o¸Ì·|­«³]LBMODELªº¤º®e
  17.          
  18.           '
  19.           '
  20.          
  21.          'ElseIf CN1 Is Nothing And G = 0 Then
  22.             ' MsgBox "¬dµL¦¹®Æ¸¹"
  23.         End If
  24.     Next
  25. Next
½Æ»s¥N½X

TOP

¦^´_ 8# GBKEE

¤F¸Ñ¡AÁÂÁ¡I

TOP

        ÀR«ä¦Û¦b : ¡i®É¤é²öªÅ¹L¡j¤@­Ó¤H¦b¥@¶¡°µ¤F¦h¤Ö¨Æ¡A´Nµ¥©ó¹Ø©R¦³¦hªø¡C¦]¦¹¥²¶·»P®É¶¡Ävª§¡A¤Á²ö¨Ï®É¤éªÅ¹L¡C
ªð¦^¦Cªí ¤W¤@¥DÃD