2016-08-13 21 views
0

我有一個用戶表單來將客戶信息輸入到表中。我有這樣的,以防止沒有名字的客戶錄入:防止從userform到表列的重複值

If CBCustName.Text = "" Then 

    MsgBox "Nothing to Add. Enter Customer Information.", vbOKOnly, "Enter Customer Data" 

    CBCustName.SetFocus 
    Exit Sub 
End If 

我也想看看,如果客戶已經存在(表CustInfo的A列),並顯示一個消息框,告訴用戶重複AREN」 t允許。客戶名稱輸入組合框CBCustName。

該例程由命令按鈕CmdAddNewCust啓動。在運行這兩個檢查之後,它應該將用戶輸入到控件的所有數據寫入表格的相應行/列。我有這樣做的那一部分,它似乎確定工作:

Set tblRow = CustInfoTable.ListRows 

tblRow.Range(1, 1).Value = CBCustName.Value 
tblRow.Range(1, 2).Value = TxtAddress.Value 
tblRow.Range(1, 3).Value = TxtCity.Value 
tblRow.Range(1, 4).Value = TxtState.Value 
tblRow.Range(1, 5).Value = TxtZip.Value 
tblRow.Range(1, 6).Value = TxtPhone.Value 
tblRow.Range(1, 7).Value = TxtContact.Value 
tblRow.Range(1, 8).Value = TxtULRate.Value 
tblRow.Range(1, 9).Value = TxtLRate.Value 
tblRow.Range(1, 10).Value = TxtStandby.Value 
tblRow.Range(1, 11).Value = TxtFuelSCharge.Value 

我試着修改一些代碼片段,但我失去了一些東西。任何人都可以指向正確的方向來防止重複輸入嗎?一如既往,您的幫助非常感謝。

回答

2

你需要預先搜索與客戶的範圍,並檢查客戶名稱已經存在那裏,像:

dim rngCust as range 

set rngCust = thisworkbook.sheets("SheetName").Range("A:A").Find(CustomerName) 

if rngCust is nothing then  
    addCustomer  
else  
    msgbox "Customer already exists"  
end if 
+0

太棒了!謝謝玩家。我修改了你的代碼來處理一個表格:「Set rngCust = CustInfoSheet.ListObjects(」CustInfo「).ListColumns(1).DataBodyRange.Find(CustName)」並且完美地工作!再次感謝您花時間提供幫助。 – gyster

+0

功勞歸於@markos。他回答了:) – cyboashu

+0

哦,不好意思Markos。我一直在努力爲此找到一個答案。非常感謝! – gyster