2015-10-20 157 views
0

我有一個用戶窗體有一個組合框和一個文本框。 TextBox需要爲ComboBox的值做一個查找,但是隻有該值存在於列表中時,如果不存在,我不想在TextBox中顯示任何內容,以便用戶可以輸入新信息。用戶窗體組合框

這是我多遠了:

Private Sub TextBox1_Enter() 
If cbocolor.Value <> "" Then 

Dim evalStr As String 
Dim check As Variant 
evalStr = WorksheetFunction.VLookup(cbocolor.Value,  worksheets("CONTACTS").Range("allcontacts"), 2, False) 
check = Evaluate(evalStr) 
If VarType(check) = vbError Then 
TextBox1.Value = "Enter new info" 

Else 
var1 = WorksheetFunction.VLookup(cbocolor.Value,  Worksheets("CONTACTS").Range("allcontacts"), 2, False) 
TextBox1.Value = var1 



End If 

回答

1

你應該能夠與一條線做這一切:

Private Sub TextBox1_Enter() 
    If cbocolor.value <> "" Then 

     TextBox1.value = WorksheetFunction.IfError(Application.VLookup(cbocolor.value, _ 
      Worksheets("CONTACTS").Range("allcontacts"), 2, False), "Enter New Info") 

    End If 
End Sub 
+0

我不能感謝你纔好,我知道這是荒謬的容易,而且我知道我在想這件事太辛苦了。非常感謝。 – CORNAKI

+0

@CORNAKI你肯定喜歡這個帽子。 :) 不用謝。如果您傾向於將其標記爲正確。 –

+0

我可以問一個問題,只是爲了更好地理解。我從你的答案中看到的是 - 如果出現錯誤,那麼做'第一件事',如果沒有做'第二件事' - 但你的代碼是做相反的事情。它工作完美,但我想明白。謝謝 – CORNAKI

相關問題