【发布时间】:2016-10-27 05:35:01
【问题描述】:
我想在 Powershell 中编写一个执行以下操作的脚本:
- 打开 Excel 工作簿。
- 在出现的 2 个对话框上单击两次 Enter。
- 运行宏,保存工作簿并退出。
第二步有问题。在我的脚本中,输入被发送到 Powershell 窗口,我看到代码中添加了两行。
谁能帮帮我?这是我的代码:
$p1 = "C:\"
$eo = new-object -comobject excel.application;
$eoc = dir $p1 -Include *.xlsm -Recurse
Foreach ($f1 in $eoc)
{
$wb = $eo.workbooks.open($f1.fullname)
while (!$eo.Ready){sleep 0.1}
$eo.Application.SendKeys('~')
while (!$eo.Ready){sleep 0.1}
$eo.Application.SendKeys('~');
$eo.Run("macro_name");
$eo.Application.CalculateFull;
while (!$eo.Ready){sleep 0.1};
$wb.save(); $wb.close()
}
$eo.quit()
【问题讨论】:
-
Sendkeys() 通常由于焦点或时间而失败。 Google for AppActivate 方法。
标签: excel vba powershell sendkeys