大大們好!
從這裡找到非常有用的資訊
拼拼貼貼之下完成了一個簡單的程式
現在有一個欄位工號需要做比對,比對正確後轉換成姓名帶入combobox
原本用case select完成,可是50筆資料我要一筆一筆輸入...實在眼花
程式如下
If IsNumeric(TextBox6.Text) Then
Dim num As Integer
num = TextBox6.Text
Else
If Not IsNumeric(TextBox6.Text) Then
MsgBox "欄位輸入必須為數值"
End If
End If
Set y = Sheets("CNC名單(All1)")
Select Case num
Case "1908"
ComboBox1.Value = "黃xx"
Case "2029"
ComboBox1.Value = "陳xx"
Case "2066"
ComboBox1.Value = "林xx"
Case "2145"
ComboBox1.Value = "陳yy"
Case "2167"
ComboBox1.Value = "陳aa"
Case "2645"
ComboBox1.Value = "劉bb"
Case "2732"
ComboBox1.Value = "洪cc"
有試過這樣寫
If IsNumeric(TextBox6.Text) Then
Dim num As Integer
num = TextBox6.Text
Else
If Not IsNumeric(TextBox6.Text) Then
MsgBox "欄位輸入必須為數值"
End If
End If
Set y = Sheets("CNC名單(All1)")
Select Case num
Case num
ComboBox1.Value = y.Range("B2", y.[B2].End(xlDown)).Value
-------------------------------------------------------------------------
腦袋實在有點打結,這樣寫法有問題嗎?
拜託各位大大指點~~~作者: luhpro 時間: 2016-6-2 22:32
個人看到的情形提出淺見供你參考:
1.
Module 上設定 Public dPeo 為 "全域變數", (整個檔案任何地方都是使用同一個物件或變數)
但你在 ThisWorkBook 又設了一個 Dim dPeo,
Dim 的 dPeo 則為 區域變數,
只有這個 Sub 看的到,
執行到 End Sub 後 -> 出去 Sub 就自動被消滅了,
而因與 Module 的 dPeo 變數名稱相同,
這個 Sub 中使用到的 dPeo 一律預設使用 Dim 出來的這個 "區域變數",
也就是這個 Sub 中的賦值作業結果在其他任一 Sub 完全無法使用)
2. userform 中:
If IsNumeric(TextBox6.Text) Then
....
Else
If Not IsNumeric(TextBox6.Text) Then <- 這一行是多餘的 If X Then ... Else 指令的 Else 就是 當 Not X 的條件為 "真" 時執行.
...
End If <- 搭配 IF 的指令, 當 IF 拿掉時也要跟著拿掉
End If
Label8.Caption = dPeo(TextBox6.Text) '本來使用combobox,不知道如何取代所以用label測試
'不知為何要用 combobox ?
當使用者在 TextBox 輸入內容後,
這裡應該只有唯一的值(用 Label 物件就可以了),
而不是有好幾個值的清單物件.
除非你想要讓使用者接著可以再在 combobox 點選 操作人 以再次變更 TextBox 的內容.
註 : 若有此需求, 可以用 combobox.AddItem ... 以增加清單項目
End Sub