【发布时间】:2017-02-26 17:35:48
【问题描述】:
我很难让 vba 仅在按下命令按钮(在本例中为 GO 按钮)后执行我的选择。附件是用户窗体的图片,不是由activeX控件制作的,以及我正在处理的代码。谢谢!
Private Sub MR_Click()
If MR.Value = True Then
Rows(6).Delete
End If
End Sub
Private Sub PMS_Click()
If PMS.Value = True Then
Rows(7).Delete
End If
End Sub
Private Sub VOIDMR_Click()
If VOIDMR.Value = True Then
Rows(13).Delete
End If
End Sub
Private Sub VOIDPMS_Click()
If VOIDPMS.Value = True Then
Rows(14).Delete
End If
End Sub
【问题讨论】:
-
不要在每个复选框
_Click事件中做你的工作,而是使用按钮的_Clickevent。请注意,删除一行会使下面的所有行上升一。 -
我在这里看到一个错字
Applicatioin.Undo。此外,我没有看到与按下“GO”按钮相关的代码。您的复选框是带有 Click 事件的复选框吗?似乎是在按下选项时不会触发此选项时触发。 span> -
感谢@nbayly 指出,我试图使用UNDO 代码,但运行宏后似乎无法撤消。这就是为什么我希望宏在点击 GO 按钮之前保持操作。
-
你好,@VincentG,我知道如果用户一直选中和取消选中复选框,就会发生不好的事情,这就是为什么我希望该操作仅在点击 GO 按钮后执行。
-
您可以在单击“Go”时检查每个复选框的状态。您不必为每个复选框的单击事件添加代码。只需遍历所有 4 个复选框并在最终运行代码时检查状态。先撤消,然后删除所需的行。
标签: excel vba checkbox userform commandbutton