【发布时间】:2020-08-31 23:53:31
【问题描述】:
我有一个用户表单,我可以在其中检查输入的名称是否在数据库中。
我区分以不同形式添加联系人和编辑联系人,因此如果在“添加联系人”表单中输入了数据库中的名称,vbYesNo MsgBox 会告诉用户并提供更改输入名称的机会(vbNo) 或编辑现有名称 (vbYes)。
Private Sub cmbLastName_AfterUpdate()
Dim FullName As String
FullName = cmbFirstName & " " & cmbLastName
Dim answer As Integer
If Application.WorksheetFunction.CountIf(Range("List_Full_Name"), FullName) Then
answer = MsgBox(FullName & " already included in contact list. Edit contact?", vbYesNo, "Error").
If answer = vbYes Then
Unload AddContact
EditContact.Show
Sheets("Engine").Range("C4").Value = "EDIT"
Else
End If
Else
End If
End Sub
EditContact.Show 似乎可以工作,但是当我关闭 EditContact 用户窗体时,程序崩溃并显示
运行时错误“-2147417848 (80010108) 自动化错误:调用的对象已与其客户端断开连接
当我按下调试时,AddContact.Show 高亮显示:
Sub ShowAddContact()
Sheets("Engine").Range("C4").Value = "NEW"
AddContact.Show
End Sub
这段代码打开 AddContact 用户窗体,并在工作表中单击“添加联系人”按钮时调用。引擎工作表引用一个已更改的单元格,具体取决于是应将条目添加到数据库中还是应更改现有条目。
【问题讨论】:
标签: excel vba automation userform