首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当用户表单中的组合框值发生更改时重新运行宏

当用户表单中的组合框值发生更改时重新运行宏
EN

Stack Overflow用户
提问于 2020-09-16 23:55:33
回答 2查看 32关注 0票数 1

我有一个带有组合框的用户表单,用于选择各种employee类的培训类型。

当用户从下拉菜单中选择一个选项时,它将运行下面的宏。

代码语言:javascript
复制
Private Sub TrainingType_Selection_Change()

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.Calculation = xlCalculationManual

Dim TrainingType_Selection As String

TrainingType_Selection = Hiring_Validation_Form.TrainingType_Selection.Value

If TrainingType_Selection = "Sustain - 30" Or TrainingType_Selection = "Sustain - 60" Then
    Hiring_Validation_Form.LinkingECPID_Selection.Visible = True
    Hiring_Validation_Form.LinkingECP_Label.Visible = True
End If

If TrainingType_Selection <> "New Hire" Then
    Hiring_Validation_Form.ReqReasonLv1_Selection.Visible = False
    Hiring_Validation_Form.Label6.Visible = False
    Hiring_Validation_Form.ReqReasonLv2_Selection.Visible = False
    Hiring_Validation_Form.Label11.Visible = False
End If

End Sub

我遇到的问题是,如果有人从下拉菜单中进行了选择,然后改变主意并从下拉菜单中选择了另一个值,则不会重新运行宏。例如,他们将上面的“新雇员”更改为“持续- 30”。我在用户表单上有一个清晰的按钮,但它清除了整个表单,这在用户只想更改一个输入,而不是完全从头开始的情况下不是理想的。

如何让TrainingType_Selection_Change()宏在组合框选择更改时重新运行

EN

回答 2

Stack Overflow用户

发布于 2020-09-17 00:30:02

这一行:

Application.ScreenUpdating = False

即使在宏完成运行后,也会禁用屏幕更新。

添加

Application.ScreenUpdating = True

作为End Sub之前的最后一行来重新启用它们。

票数 0
EN

Stack Overflow用户

发布于 2020-09-17 00:39:59

通过使用AfterUpdate(),我找到了解决这个问题的方法。我添加了下面的宏,现在当选择发生变化时,它会更新整个表单。

代码语言:javascript
复制
Private Sub TrainingType_Selection_AfterUpdate()

    TrainingType_Selection = Hiring_Validation_Form.TrainingType_Selection.Value

    Hiring_Validation_Form.LinkingECPID_Selection.Visible = False
    Hiring_Validation_Form.LinkingECP_Label.Visible = False
    Hiring_Validation_Form.ReqReasonLv1_Selection.Visible = True
    Hiring_Validation_Form.Label6.Visible = True
    Hiring_Validation_Form.ReqReasonLv2_Selection.Visible = True
    Hiring_Validation_Form.Label11.Visible = True
    Hiring_Validation_Form.Label21.Visible = True
    Hiring_Validation_Form.NewHireSup_Selection.Visible = True

    Call TrainingType_Selection_Change

End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63923783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档