【发布时间】:2018-06-09 23:54:01
【问题描述】:
我在 Excel VBA 中运行一个用户窗体,它似乎可以工作,但是,它似乎没有关闭。基本上,一旦将数据输入表单并单击“提交”按钮,我希望将数据存储在某些单元格中并关闭表单并运行另一个子代码。
以下是我的 VBA 代码:
Private Sub CommandButton1_Click()
HaulerRatesForm.Label1.Caption = Worksheets("Dashboard").Range("A47").Value
HaulerRatesForm.Label2.Caption = Worksheets("Dashboard").Range("A48").Value
HaulerRatesForm.Label3.Caption = Worksheets("Dashboard").Range("A49").Value
HaulerRatesForm.Label4.Caption = Worksheets("Dashboard").Range("A50").Value
HaulerRatesForm.Show
End Sub
Private Sub UserForm_Initialize()
End Sub
Private Sub CommandButton2_Click()
Worksheets("Dashboard").Cells(47, "H").Value = HaulerRatesForm.TextBox1.Value
Worksheets("Dashboard").Cells(48, "H").Value = HaulerRatesForm.TextBox2.Value
Worksheets("Dashboard").Cells(49, "H").Value = HaulerRatesForm.TextBox3.Value
Worksheets("Dashboard").Cells(50, "H").Value = HaulerRatesForm.TextBox4.Value
Unload Me
Call Dashboardcodes2
End Sub
我似乎无法弄清楚为什么 Unload Me 似乎没有关闭窗口。关于我在这里做错了什么有什么想法吗?
【问题讨论】:
-
这段代码在哪里?是正在运行的其他代码。卸载后运行的程序是什么?有
terminate程序吗?如果您尝试使用 F8 单步执行代码,问题会更清楚。 See this link 了解来自令人惊叹的 Chip Pearson 的更多 VBA 调试技术。 -
是的,其他代码运行良好——我在没有表格的情况下对其进行了测试。这是一个很长的代码,并认为它可能会在问题中占据不必要的空间,并没有在其中添加它。代码没有问题,只有形式。为了澄清,该表单已添加到正在运行的代码中。它们都是我正在从事的一个大型项目的一部分。 Sub Dashboardcodes2 () 紧随其后。
-
我在代码开头使用 Application.ScreenUpdating = False,但是 - 这会影响表单吗?
-
它可以——在你问这个问题的时候,你可以试着评论它看看。以下是故障排除的要点:尽可能多地删除/注释掉代码,尽可能多地避免出现问题。然后,开始重新添加它,一次一行,直到你知道哪一部分是问题所在。
-
这可能与昨天的this 问题重复。