返回列表 上一主題 發帖

[發問] ComboBox 裡的資料排序

[發問] 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
learner

請問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
複製代碼

TOP

回復 2# luhpro


    謝謝luhpro.
但我的資料, 除了A欄外,還有 B欄~M欄, A欄雖有重新排序, 但B欄~M欄資料沒有跟著一起排序.
請問有可能只在下拉式選單排序即可,而不動原有的資料嗎?
learner

TOP

回復 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

TOP

回復 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
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 5# GBKEE

GBKEE 你好 ,
會出現執行階段錯誤’70’ 沒有使用權限, 偵錯落在ComboBox1.List = Ar
請問是什麼意思?
learner

TOP

回復 4# dechiuan999

dechiuan999 你好 ,
會出現執行階段錯誤’70’ 沒有使用權限, 偵錯在.List = mRng1.Value
learner

TOP

回復 7# yliu
請你把檔案上傳,才知道錯誤在哪裡!!
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 8# GBKEE


    GBKEE 你好 ,
已除錯了, 謝謝!  我在ComboBox1的ListFillRange屬性放了定義名稱, 拿掉以後,就不再出現錯誤.
learner

TOP

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

TOP

        靜思自在 : 不怕事多,只怕多事。
返回列表 上一主題