我的Excel图书包含一个名为myUserForm
的用户表单。
我想打开它,用数据填充它并以编程方式按下它的按钮。
我输入数据的TextBox有BeforeUpdate和AfterUpdate处理程序。
如果我调用Call UserForm2.Show
,这些事件将会运行,但我似乎无法卸载表单(调用Call UserForm2.Show
暂停执行excel marco直到我手动关闭它。)
如果我呼叫不Call UserForm2.Show
(或在无模式模式下调用它),数据填充就可以了,但Excel BeforeUpdate和AfterUpdate处理程序将被忽略。
示例代码:
在模块中:
Public Function s(ByVal newValue As String) As String
'Call UserForm2.Show
UserForm2.TextBox1.Value = newValue
UserForm2.Repaint
s = UserForm2.TextBox1.Value
UserForm2.Button1_Click
End Function
Public Function s2() As String
s2 = s("newValue")
End Function
以用户身份:
Public Sub Button1_Click()
Unload Me
End Sub
Public Sub TextBox1_AfterUpdate()
TextBox1.Value = TextBox1.Value + "y"
End Sub
答案 0 :(得分:0)
您想要打开一个表单,用数据填充它,然后关闭它而不需要用户交互?为什么要打开表格呢。
除此之外,只需将卸载我的代码移动到表单加载事件的末尾,或者表单激活事件......虽然这可能不起作用,但值得一试,抱歉无法在PC上测试。