如何在中间不停止的情况下键入完整的字符串?

How to type full string without stopping in the middle?

我正在尝试在某些字段中键入完整的字符串,但键入函数并未写入所有文本。

我得到了一个文本字段对象,我正在尝试用类型函数填充它。由于某种原因,type 函数只写入了部分文本。 首先,我删除了所有以前的文本,然后使用 type 函数键入新文本。

InputAreaObj.Type micCtrlDwn + "a" + micCtrlUp 'select the text
InputAreaObj.Type  micDel   'remove it
InputAreaObj.Click 0,0          'click on the object
InputAreaObj.type CodeToExecute  'type the string

我只是想让文本完整地显示出来,而不是其中的一部分。 我尝试使用 split 将字符串分隔为数组,但它不起作用。 谢谢!

Type() 方法可能受到键盘缓冲区、重复率、and/or 简单字符代码序列的限制——类似于 WScript.Shell 对象的 SendKeys() 方法。也就是说,您可能需要在使用 Type() 方法发送每个字符之间等待(睡眠)。

例如,尝试将上面的最后一行替换为如下内容:

For i = 1 To Len(CodeToExecute)
    InputAreaObj.Type Mid(CodeToExecute, i, 1)
    WScript.Sleep 500
Next

此示例一次向您的 InputAreaObj 发送一个字符,同时为其提供足够的等待时间来处理和呈现接收到的每个字符。

请记住,如果您的 InputAreaObj 呈现像 HTML 这样的标记,那么 CodeToExecute 中包含的字符有可能 'hide' 文本的一部分(取决于提供的标记),给出InputAreaObj 实际上并没有接收到所有字符的错觉,而实际上它接收到了。

希望对您有所帮助。