【发布时间】:2018-03-22 00:26:29
【问题描述】:
我要做的是运行一个 VBA 文件,该文件打开一个 Excel 工作簿,使用输入框启动一个宏,在该输入框中输入文本,按 Enter,然后宏继续运行。
到目前为止,我所拥有的是“GetData”是宏的名称:
strPath = "C:\Users\Test\Desktop\ExcelFile.xlsm"
strMacro = "GetData"
Set objApp = CreateObject("Excel.Application")
objApp.Visible = True
Set wbToRun = objApp.Workbooks.Open(strPath)
objApp.Run strMacro
objApp.SendKeys "Sample"
objApp.SendKeys "~"
我遇到的问题是 SendKeys 直到宏运行完成后才会激活。输入框出现后,它就一直呆在那里,直到我关闭它。这会导致宏什么都不做,然后将单词“Sample”输入到单元格中,然后按下“Enter”。
我的问题是:如何让 SendKeys 将值输入到输入框中?
【问题讨论】:
-
你能把宏'strmacro'改成类似strfunction(inputboxtext as string)这样的函数,然后在调用函数时在输入框中发送你想要的文本吗?当然,那时就不再需要输入框了。