Board logo

標題: [發問] ComboBox 裡的資料排序 [打印本頁]

作者: yliu    時間: 2013-5-23 21:13     標題: ComboBox 裡的資料排序

請問ComboBox 裡的資料排序問題.
ComboBox1 的資料來源是Sheet1.Range("A1:A20"), 打開下拉式選單時, 單據號碼能自動排序,請問VBA如何寫?

Sheet1.Range("A1:A20")資料如下:
C1-1301001
C2-1302003
C1-1303004
C1-1302001

打開下拉式選單時,自動排序為:
C1-1301001
C1-1302001
C1-1303004
C2-1302003
作者: luhpro    時間: 2013-5-23 21:44

請問ComboBox 裡的資料排序問題.
ComboBox1 的資料來源是Sheet1.Range("A1:A20"), 打開下拉式選單時, 單據 ...
yliu 發表於 2013-5-23 21:13
  1. Private Sub ComboBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  2.   Range("A1:A20").Sort Key1:=Range("A1")
  3. End Sub
複製代碼

作者: yliu    時間: 2013-5-23 23:20

回復 2# luhpro


    謝謝luhpro.
但我的資料, 除了A欄外,還有 B欄~M欄, A欄雖有重新排序, 但B欄~M欄資料沒有跟著一起排序.
請問有可能只在下拉式選單排序即可,而不動原有的資料嗎?
作者: dechiuan999    時間: 2013-5-24 06:29

回復 3# yliu


    您好:

  請試試下列方法是否
合適
Private Sub ComboBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   
    Dim mSht As Worksheet
    Dim mRng As Range, mRng1 As Range
        
    Set mSht = Worksheets(1)
    With mSht
        Set mRng = .Range("a1:a20")
        Set mRng1 = .Range("w1:w20")
        mRng1.Value = mRng.Value
        With mRng1
            .Sort key1:=.Columns("a"), header:=xlGuess
        End With
        With UserForm1.ComboBox1
            .List = mRng1.Value
            .ListIndex = -1
        End With
        mRng1.Value = ""
    End With
   
End Sub
作者: GBKEE    時間: 2013-5-24 06:48

回復 3# yliu
  1. Private Sub ComboBox1_GotFocus()
  2.     Dim Ar, I
  3.     ReDim Ar(1 To [a1:a20].Count)
  4.     For I = 1 To [a1:a20].Count
  5.         Ar(I) = Application.Small([a1:a20], I)
  6.     Next
  7.     ComboBox1.List = Ar
  8. End Sub
複製代碼

作者: yliu    時間: 2013-5-24 13:56

回復 5# GBKEE

GBKEE 你好 ,
會出現執行階段錯誤’70’ 沒有使用權限, 偵錯落在ComboBox1.List = Ar
請問是什麼意思?
作者: yliu    時間: 2013-5-24 14:04

回復 4# dechiuan999

dechiuan999 你好 ,
會出現執行階段錯誤’70’ 沒有使用權限, 偵錯在.List = mRng1.Value
作者: GBKEE    時間: 2013-5-24 14:24

回復 7# yliu
請你把檔案上傳,才知道錯誤在哪裡!!
作者: yliu    時間: 2013-5-24 14:52

回復 8# GBKEE


    GBKEE 你好 ,
已除錯了, 謝謝!  我在ComboBox1的ListFillRange屬性放了定義名稱, 拿掉以後,就不再出現錯誤.
作者: yliu    時間: 2013-5-24 14:56

回復 4# dechiuan999
dechiuan999 你好 ,
同樣的,採用你的方式也可以了, 謝謝! 我在ComboBox1的ListFillRange屬性放了定義名稱, 拿掉以後,就不再出現錯誤.




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)