2017-09-05 72 views
0

我有4個不同的單詞(financial, location, course, professor),可以在文本框中輸入,但每個單詞只能在文本框的每個輸入中使用一次。驗證:只允許一個特定的單詞在VBA中輸入一次Excel

例如,我在文本框中輸入了一個如下所示的句子:「我的財務存在問題,因爲我的家人正面臨財務問題」,下面的代碼將此句子處理爲拆分文本。

我想爲驗證所要做的就是通知用戶(可能通過MSGBOX)是這樣的:「錯誤 - 你必須在一個句子中使用的財務只有一次」

另外,如果課程,位置和教授在一個句子中多次使用,還應該給出一個msgbox。

Private Sub CommandButton1_Click() 
Call SplitText 
End Sub 
Sub SplitText() 
    Dim WArray As Variant 
    Dim TextString As String 
    TextString = TextBox1 
    WArray = Split(TextBox1, " ") 
    If (TextString = "") Then 
    MsgBox ("Error: Pls Enter your data") 
    Else 

    With Sheets("DatabaseStorage") 
     .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(UBound(WArray) + IIf(LBound(WArray) = 0, 1, 0)) = Application.Transpose(WArray) 
    End With 

    MsgBox ("Successfully inserted") 

    End If 

End Sub 
+2

這不是一個代碼snippit,不要像這樣格式化它。 VBA不會被困在一個小竅門裏面。 – Luuklag

+0

好的複製先生我將編輯我的帖子 –

+0

當人們在文本框中輸入財務兩次時,您會遇到什麼問題?你可以很容易地檢查這個詞是否出現在他們的條目中,它出現的次數應該不重要。 – Luuklag

回答

1

試試這個:

Private Sub CommandButton1_Click() 
    Call SplitText 
End Sub 

Sub SplitText() 
    Dim sentence As String 
    Dim mycount As Long 

    sentence = InputBox("Enter the sentence") 
    mycount = UBound(Split(sentence, "financial")) 
    If mycount > 1 then 
     Msgbox "Error - you must used financial only once in a sentence" 
    End if 

    'Here the rest of the code you need 

End Sub 

希望它能幫助。

+0

嗨,先生,它的工作原理msgbox,但每次我嘗試保存到我的數據庫它返回錯誤:/ –

+0

@RaeIan記住你在代碼中使用了一個名爲WArray的變量,該變量不在我的,因爲我沒有使用你的分割方法,它只是當你根據你需要保存的時候將其替換掉。 – jsanchezs