Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA命令/分组;调用;_Excel_Call_Wait_Vba - Fatal编程技术网

Excel VBA命令/分组;调用;

Excel VBA命令/分组;调用;,excel,call,wait,vba,Excel,Call,Wait,Vba,也许不是最好的标题,但是有了这个例子会更好 这是复选框的用户表单中的一个函数。在调用SelectAlldtList(这需要几秒钟的时间)之前,我试图将字体更改为bold 发生的情况是,直到完成SelectAlldtList之后,字体才会更改 Private Sub CheckBoxAllDirectionTerritoriale_Click() If Me.CheckBoxAllDirectionTerritoriale.Value = True Then CheckBo

也许不是最好的标题,但是有了这个例子会更好

这是
复选框的
用户表单
中的一个函数。在调用
SelectAlldtList
(这需要几秒钟的时间)之前,我试图将字体更改为
bold

发生的情况是,直到完成
SelectAlldtList
之后,字体才会更改

Private Sub CheckBoxAllDirectionTerritoriale_Click()
    If Me.CheckBoxAllDirectionTerritoriale.Value = True Then
        CheckBoxAllDirectionTerritoriale.Font.Bold = True
        Call SelectAlldtList
    Else
        CheckBoxAllDirectionTerritoriale.Font.Bold = False
        Call UnselectAlldtList
    End If
End Sub
如果我添加了一个
Wait
6毫秒,那么该行为就是我想要的。 如果我添加
Wait
5毫秒,则行为与没有
Wait
的情况相同

Private Sub CheckBoxAllDirectionTerritoriale_Click()
    If Me.CheckBoxAllDirectionTerritoriale.Value = True Then
        CheckBoxAllDirectionTerritoriale.Font.Bold = True
        Application.Wait (Now + 0.000006)
        Call SelectAlldtList
    Else
        CheckBoxAllDirectionTerritoriale.Font.Bold = False
        Application.Wait (Now + 0.000006)
        Call UnselectAlldtList
    End If
End Sub
为什么呢?如果没有
Wait
,在有时间
bold
并获取所有资源之前调用
SelectAlldtList


当我这么做的时候,有没有更好的方法?某种类型的同步?

我对这里的内容不是很有经验,但我在压缩文件的宏中遇到了类似的问题,还需要添加等待才能正常工作。也许帮助我的可以帮助你。以下是我用来同步它的内容:

Do Until Object1.Namespace(Variant1).items.Count = 1
    Application.Wait (Now + TimeValue("0:00:01"))
Loop
下面是您可以如何应用它(未经测试):


我将它设置为一毫秒,但是如果你在部分加粗或其他方面出现错误,你可能想将它增加到两毫秒。请注意,您可能仍然会有轻微的延迟,但这样的话,如果是5毫秒、7毫秒等,我想您仍然会被覆盖。

我对这里的内容不是很有经验,但我在压缩文件的宏中遇到了类似的问题,还需要添加等待才能正常工作。也许帮助我的可以帮助你。以下是我用来同步它的内容:

Do Until Object1.Namespace(Variant1).items.Count = 1
    Application.Wait (Now + TimeValue("0:00:01"))
Loop
下面是您可以如何应用它(未经测试):


我将它设置为一毫秒,但是如果你在部分加粗或其他方面出现错误,你可能想将它增加到两毫秒。请注意,您可能仍然会有轻微的延迟,但这样的话,如果是5毫秒、7毫秒等,我想您仍然会被覆盖。

这对我的情况不起作用,代码永远不会进入
Do,直到
奇怪,它只是直接跳过它进入
Call
行?顺便说一句,你知道你不再需要单词
Call
了吗,你只需要输入函数名就可以了?对不起,我帮不上什么忙。这对我的情况不起作用,代码永远不会进入
Do,直到
奇怪,它只是直接跳过它进入
呼叫
行?顺便说一句,你知道你不再需要单词
Call
了吗,你只需要输入函数名就可以了?对不起,我帮不上什么忙了。