在多个条件下做



简单的问题,我必须缺少明显的东西。

我正在尝试创建一个子例程,该子例程将对打开的窗口进行轮询,我的目标是通过在满足两个条件时运行的循环来实现这一目标。我一直遇到错误:

运行时间错误13:输入不匹配

在循环时进行操作,然后在搜索类似问题之后,我仍然不确定自己在做什么错。

这是不断错误的行:

Sub FindHWND()
    Dim HWNDOut as string
    Dim Timer as Date
    Timer = Now()
    'This following line is the one erroring out. 
    Do While ((Now() < Timer + TimeValue("00:00:10")) And (HWNDOut = 0))
        HWNDOut = CStr(Hex(FindWindowEx(0&, 0, "SunAwtFrame", "Graph.graphml - yEd")))
        Debug.Print HWNDOut
        Sleep (100)
    Loop
    'Other, following sub and code that is not relevant
End Sub

其中 Timer是循环启动之前的 Now(),而 HWNDOut是我要寻找的窗口的手柄,它将在循环中找到。

所有这些循环每100毫秒都可以查看是否打开了第三方程序的窗口,以防止在下一个子例程中丢失命令。

帖子脚本:如果有人有任何建议如何更好地做到这一点,我全都是耳朵。这是我第一次使用UI自动化,所以我仍在学习。编辑:在上下文中添加了更多代码。

with:

And (HWNDOut = 0))

您正在将字符串与数字值进行比较.....................................................................................................................

尝试将变量定时器更改为其他内容,例如启动时间(认为VBA中有一个计时器函数,它返回了不同类型的值;因此最好不要使用保留或具有语义意义的单词)。

可能会有所帮助,祝您好运。

最新更新