真的很困扰这个,找到了一个解决方案,但它不是一个真正令人满意的解决方案。 我有一个工作簿,有两个用户窗体,一个用于输入数据,一个用于搜索以前输入的数据,第三个用户窗体设计为日期选择器窗体,设置为在输入指定日期文本框时激活。用户窗体上的其他用户窗体控件的设置值关闭
单独我没有问题,用户单击文本框并显示日期选择器窗体,他们做出选择,关闭日期选择器窗体并将日期添加到文本框中。在“输入数据”窗体上,我有一个多页面,每个页面上都有一个日期选择文本框,在“查找数据”窗体上,我可以选择搜索单个日期或范围,3日期选择文本总共盒子。
现在我注意到,userform1(输入数据)提示运行时错误91 - 对象变量或块变量未设置,并在代码中标记userform2的第一行时,每当我从日期选择器中选择一个日期形成。
什么我也注意到然而是正确的日期仍然被输入到文本框,以便我加了高亮线,是允许的动作发生不中断上述的“对错误转到”线修复。我注意到的是,现在如果我在userform2上的任何位置输入日期(查找数据),然后关闭表单并决定要输入数据,userform1上的文本框将包含前一个选择在userform2上的任何内容。尤其令人困惑的是,UF1的初始化事件在日期文本框中输入当前日期。
看到下面的代码,有没有更好的方法来写这个?我希望我解释得很好,请让我知道,如果我可以提供更多的细节来帮助。
Sub CloseDatePicker(save As Boolean)
If UserForm1.MultiPage1.Value = 0 Then
UserForm1.tbDate.Text = Calendar1.Value
UserForm1.cbMember.SetFocus
ElseIf UserForm1.MultiPage1.Value = 1 Then
UserForm1.tbDate2.Text = Calendar1.Value
UserForm1.cbMember2.SetFocus
End If
On Error GoTo dpexit
If UserForm2.ActiveControl.Name = "TextBox1" Then
UserForm2.TextBox1.Text = Calendar1.Value
End If
If UserForm2.ActiveControl.Name = "TextBox2" Then
UserForm2.TextBox2.Text = Calendar1.Value
ElseIf UserForm2.ActiveControl.Name = "TextBox3" Then
UserForm2.TextBox3.Text = Calendar1.Value
End If
dpexit:
Me.Hide
End Sub
你隐藏UserForm2或卸载它吗? – Comintern
用户表单1和2都被设置为“卸载我”。但是在用户窗体DatePickerForm关闭时发生问题,而不是userform1或userform2。 – Awill
我不确定如何添加文件作为示例。让我知道它是否真的有助于理解我遇到的情况。 – Awill