0

我的 Excel 书包含一个名为myUserForm. 我想打开它,用数据填充它并以编程方式按下它的按钮。我输入数据的文本框具有更新前和更新后处理程序。

如果我调用Call UserForm2.Show,这些事件将运行,但我似乎无法卸载表单(调用会Call UserForm2.Show暂停 excel marco 的执行,直到我手动关闭它)。

如果我调用 don't 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
4

1 回答 1

0

你想打开一个表单,用数据填充它,然后在没有用户交互的情况下关闭它?为什么要费心打开表格。

除此之外,只需将卸载我的代码移动到表单加载事件或表单激活事件的末尾......虽然这可能不起作用,但值得一试,抱歉无法在 PC 上测试。

于 2013-11-02T09:33:21.450 回答