- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
7#
發表於 2015-11-20 08:19
| 只看該作者
回復 6# gca78000
試試看- Option Explicit
- Dim d As Object, Rng As Range '私用變數,僅這模組可用
- Private Sub UserForm_Initialize()
- Dim A As Range, M As String
- Set d = CreateObject("Scripting.Dictionary")
- With Sheets("查詢區")
- Set Rng = .Range("P4:P25,R4:R25,T4:T25,V4:V25")
- Label1.Caption = .Name
- .Cells.Interior.ColorIndex = xlNone
- End With
- For Each A In Rng
- M = Mid(A, 1, 1)
- If M <> "" Then
- If d.exists(M) Then '字典物件的Key存在(已使用)
- Set d(M) = Union(A, d(M)) 'Set:設定為物件 , A As Range
- Else
- Set d(M) = A
- End If
- End If
- Next
- ComboBox1.List = d.keys
- End Sub
- Private Sub ComboBox1_Change()
- Rng.Interior.ColorIndex = xlNone
- d(ComboBox1.Text).Interior.ColorIndex = 6
- End Sub
複製代碼 vba的說明- Mid 陳述式 將一 Variant (String) 變數中某數量的字元以其他字串字元替代。
- Mid 陳述式範例
- 本範例使用 Mid 陳述式將某字串中的幾個字元置換為其它的字元。
- Dim MyString
- MyString = "The dog jumps" ' 設定字串初值。
- Mid(MyString, 5, 3) = "fox" ' MyString = "The fox jumps"。
- Mid(MyString, 5) = "cow" ' MyString = "The cow jumps"。
- Mid(MyString, 5) = "cow jumped over" ' MyString = "The cow jumpe"。
- Mid(MyString, 5, 3) = "duck" ' MyString = "The duc jumpe"。
複製代碼 |
|