我需要你的幫助。我怎樣才能限制我的文本框?這是我的下面的表單。 將正則表達式應用到文本框中VBA
我需要的是創造,如果下列文本框聲明: 托盤ID:必須只包含9號 紙箱ID:只能包含10個號碼 連續劇(全6):必須startwith FOC和僅包含CAPS和數字[AZ] [0-9]
我在Javascript中做了這個,但現在我需要在excelsheet中有一個備份。有任何想法嗎?
感謝您的關注,
我需要你的幫助。我怎樣才能限制我的文本框?這是我的下面的表單。 將正則表達式應用到文本框中VBA
我需要的是創造,如果下列文本框聲明: 托盤ID:必須只包含9號 紙箱ID:只能包含10個號碼 連續劇(全6):必須startwith FOC和僅包含CAPS和數字[AZ] [0-9]
我在Javascript中做了這個,但現在我需要在excelsheet中有一個備份。有任何想法嗎?
感謝您的關注,
心中已經創建了一個示例User_Form
和CommandButton
(如「確認」按鈕),一旦它按下它會檢查在TextBox
ES輸入的所有值都根據這規則。
下面的代碼會幫助您開始,它會檢查「托盤ID」(9位數字)和「紙箱ID」(10位數字)中的值。
代碼
Option Explicit
Private Sub CommandButton1_Click()
Dim Reg1 As Object
Dim Reg2 As Object
Dim RegMatches As Object
' ====== Test PalletID_Tb =====
Set Reg1 = CreateObject("VBScript.RegExp")
With Reg1
.Global = True
.IgnoreCase = True
.Pattern = "\d{9,9}" ' Match any set of 9 digits
End With
Set RegMatches = Reg1.Execute(Me.PalletID_Tb.Value)
If RegMatches.Count = 1 Then '<-- make sure there is only 1 match (9 digits and not 18 or 27)
MsgBox "Value in Pallet ID is OK"
Else
MsgBox "Pallet ID must have a 9 digit format"
Me.PalletID_Tb.Value = ""
Exit Sub
End If
' ====== Test CartonID_Tb =====
Set Reg2 = CreateObject("VBScript.RegExp")
With Reg2
.Global = True
.IgnoreCase = True
.Pattern = "\d{10,10}" ' Match any set of 10 digits
End With
Set RegMatches = Reg2.Execute(Me.CartonID_Tb.Value)
If RegMatches.Count = 1 Then '<-- make sure there is only 1 match (10 digits and not 20)
MsgBox "Value in Carton ID is OK"
Else
MsgBox "Carton ID must have a 10 digit format"
Me.CartonID_Tb.Value = ""
Exit Sub
End If
' Do something if passed the 2 conditions
End Sub
謝謝你的時間! – Deluq
設置每個框'MaxLength'財產,並處理文本框的事件,例如'txtPalletID_KeyDown'如果你想截取單個的鍵(並且實際上*防止*它們甚至被輸入到第一個位置),或者'txtPalletID_Exit'在焦點切換到另一個控件時驗證內容(並且可能取消它並強制重新回到文本框中);通過這種方式,您可以禁用「Agregar」按鈕,直到所有字段被認爲是有效的......但是這對於單個SO問題來說是相當廣泛的主題。嘗試一下,卡住,回來*特定*問題=) –
讓我試試看:) – Deluq
@Deluq閱讀我的答案和代碼 –