Excel 防止将值从userform复制到表列

Excel 防止将值从userform复制到表列,excel,vba,duplicates,userform,Excel,Vba,Duplicates,Userform,我有一个userform将客户信息输入到表中。我有以下措施来防止没有姓名的客户进入: If CBCustName.Text = "" Then MsgBox "Nothing to Add. Enter Customer Information.", vbOKOnly, "Enter Customer Data" CBCustName.SetFocus Exit Sub End If 我还想看看客户是否已经存在(CustInfo表的A列),并显示一个消息框,告诉用户不允

我有一个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

我尝试过修改几个代码段,但我遗漏了一些东西。有人能告诉我正确的方向以防止重复输入吗?一如既往,我们非常感谢您的帮助。

您需要与客户一起预先搜索该范围,并检查该范围内是否已存在客户名称,例如:

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

您需要与客户一起预先搜索该范围,并检查该范围内是否已存在客户名称,例如:

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

好极了谢谢你,西博阿舒。我修改了您的代码以使用一个表:“Set rngCust=CustInfoSheet.ListObjects(“CustInfo”).ListColumns(1.DataBodyRange.Find(CustName)”,这非常有效!再次感谢你抽出时间来帮忙。哦,对不起,马科斯。这几天来,我一直在努力寻找答案。非常感谢!好极了谢谢你,西博阿舒。我修改了您的代码以使用一个表:“Set rngCust=CustInfoSheet.ListObjects(“CustInfo”).ListColumns(1.DataBodyRange.Find(CustName)”,这非常有效!再次感谢你抽出时间来帮忙。哦,对不起,马科斯。这几天来,我一直在努力寻找答案。非常感谢!