EXCEL VBA 各种疑难问题解决方案

计算机语言、软件、硬件
回复
peng
Site Admin
帖子: 199
注册时间: 周五 11月 01, 2019 9:06 am

EXCEL VBA 各种疑难问题解决方案

帖子 peng »

本帖是EXCEL VBA 各种疑难问题解决方案。

peng
Site Admin
帖子: 199
注册时间: 周五 11月 01, 2019 9:06 am

Re: EXCEL VBA 各种疑难问题解决方案

帖子 peng »

问题:
想给组合框赋值时即当执行语句combobox1.value=5前,临时禁用组合框的change事件,但用Application.EnableEvents = False不管用,请高手指点!!!

解决:
Public kk As Boolean
Private Sub ComboBox1_Change()
If Not kk Then Exit Sub
MsgBox "OK"
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
kk = False
Sheet1.ComboBox1.Value = Target.Row
End Sub

peng
Site Admin
帖子: 199
注册时间: 周五 11月 01, 2019 9:06 am

Re: EXCEL VBA 各种疑难问题解决方案

帖子 peng »

excel - 打开窗体窗口时,如何使代码在VBA中运行?

在Excel VBA中,我想按一个按钮,运行一些代码,然后在代码运行时出现一个窗体窗口,显示诸如“代码正在运行,请等到完成。单击停止按钮以终止代码”。

但是每次我显示表单时,代码都会停止,等待表单窗口关闭后再继续。有没有办法在打开窗体窗口时强制代码继续运行?
谢谢!

回答:在.Show末尾添加(False)或将窗体的ShowModal属性更改为False。然后在fmRunning.Show(False)之后添加Application.Wait(Now + TimeValue(“ 0:00:01”))。或插入“ DoEvents”而不是Application.Wait
谢谢大家!


您需要将用户表单设置为无模式。这可以通过两种方式完成:

通过选择用户窗体并将ShowModal属性更改为False
或通过将modal属性设置为0(vbModeless)打开用户窗体

回复