我尝试做的是运行一个打开excel工作簿的VBA文件,启动一个带输入框的宏,在该输入框中输入文本,按回车键,然后宏继续运行。< / p>
到目前为止我用的是&#34; GetData&#34;是宏的名称:
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才会激活。输入框出现后,它会一直停留在那里直到我关闭它。这导致宏没有做什么,然后单词&#34; Sample&#34;进入一个单元格然后&#34;输入&#34;被压了。
我的问题是:如何让SendKeys在输入框中输入值?
答案 0 :(得分:0)
您在SendKeys
上不使用InputBox
,只需指定默认值:
x = InputBox("Prompt", "Title", "Default Value")
如果这不符合您的需求,那么它会变得更复杂一些。让您的调用程序在调用宏之前将值写入文件,然后让宏将该文件读入InputBox
然后用作其默认值的变量。
但是,如果它也是&#34;按下输入&#34;那么首先使用InputBox
有什么意义呢?这似乎毫无意义。