防止从userform到表列的重复值

时间:2016-08-13 17:42:48

标签: excel vba duplicates userform

我有一个用户表单,可以将客户信息输入到表格中。我这样做是为了防止没有名字的客户进入:

If CBCustName.Text = "" Then

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

   CBCustName.SetFocus
   Exit Sub
End If

我还想看看客户是否已经存在(表CustInfo的A列),并显示一个消息框,告诉用户不允许重复项。客户名称输入组合框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

我尝试修改了几个代码片段,但我遗漏了一些东西。任何人都可以指出我正确的方向,以防止重复输入?一如既往,非常感谢您的帮助。

1 个答案:

答案 0 :(得分: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