Board logo

標題: [發問] VBA TextBox 輸入利用Vlookup讓Label 顯示數值問題 [打印本頁]

作者: fantersy    時間: 2015-4-9 12:26     標題: VBA TextBox 輸入利用Vlookup讓Label 顯示數值問題

各位大大好
小弟有一事想請教
小弟用VBA TextBox 輸入數值
想讓Label8 的Caption 顯示
使用公式Application.WorksheetFunction.VLookup
但只要Key in一個數字就會出現錯誤
但用貼上的就不會有錯
會不會是 TextBox只會執行一次??
小弟嘗試使用 Do while loop去寫也是錯誤
請問有解嗎?
付上小弟寫的程式
Private Sub TextBox3_Change()
Do While Label8.Caption <> ""
On Error GoTo EH:
Label8.Caption = Application.WorksheetFunction.VLookup(TextBox3.Text, Sheets("ITM").Range("C3:D7639"), 2, False)
Label11.Caption = Application.WorksheetFunction.VLookup(TextBox3.Text, Sheets("ITM").Range("C3:F7639"), 4, False)
EH:
Label8.Caption = ""
Label11.Caption = ""
Loop
End Sub
作者: minture3    時間: 2015-4-9 14:50

本帖最後由 minture3 於 2015-4-9 14:52 編輯

回復 1# fantersy

試試看這樣!!
剛試了一下 用這個方式的話每打一個字就會搜尋一次
資料筆數如果很多的話 不知道會不會執行速度很慢
    Private Sub TextBox1_Change()
On Error GoTo EH:
X = Application.WorksheetFunction.VLookup(TextBox1.Text, Sheets("sheet1").Range("A1:C7"), 2, False)
Y = Application.WorksheetFunction.VLookup(TextBox1.Text, Sheets("sheet1").Range("A1:C7"), 3, False)
EH:
Label1.Caption = X
Label2.Caption = Y
End Sub
作者: lpk187    時間: 2015-4-9 15:23

用這EXIT事件
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
作者: minture3    時間: 2015-4-9 15:37

回復 3# lpk187
改成EXIT就不會有我上面那個問題了!!
感謝!!
剛好這也是我需要的!!
作者: fantersy    時間: 2015-4-10 10:31

用這EXIT事件
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
lpk187 發表於 2015-4-9 15:23



    可以用了~太感謝你了
只不過刮號裡面的東西看不是很懂...要再研究一下~感恩大大

後來我用
Label23.Caption = Application.IfError(Application.VLookup(TextBox8.Text, Sheets("ITM").Range("C3:F7639"), 4, False), "")
加了Iferror在裡面也是可以
只不過好像只有限定要2003版以上才行....
大大的方式真的很讚~感恩!!




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