SendKeys到Excel输入框(VBA)

时间:2017-10-10 14:33:53

标签: excel vba excel-vba

我尝试做的是运行一个打开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在输入框中输入值?

1 个答案:

答案 0 :(得分:0)

您在SendKeys上不使用InputBox,只需指定默认值:

x = InputBox("Prompt", "Title", "Default Value")

如果这不符合您的需求,那么它会变得更复杂一些。让您的调用程序在调用宏之前将值写入文件,然后让宏将该文件读入InputBox然后用作其默认值的变量。

但是,如果它也是&#34;按下输入&#34;那么首先使用InputBox有什么意义呢?这似乎毫无意义。