【问题标题】:Powershell Send Key ExcelPowershell 发送密钥 Excel
【发布时间】:2016-10-27 05:35:01
【问题描述】:

我想在 Powershell 中编写一个执行以下操作的脚本:

  1. 打开 Excel 工作簿。
  2. 在出现的 2 个对话框上单击两次 Enter。
  3. 运行宏,保存工作簿并退出。

第二步有问题。在我的脚本中,输入被发送到 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


【解决方案1】:

你需要这样的东西。

$wshell = New-Object -ComObject wscript.shell;

$wshell.AppActivate('window name of your excel file') | Out-Null

这将集中您的 Excel 工作簿并执行您的发送键命令。

【讨论】:

    猜你喜欢
    • 2021-05-13
    • 1970-01-01
    • 2019-09-19
    • 2016-02-02
    • 2018-08-09
    • 1970-01-01
    • 2010-11-18
    • 2018-03-15
    • 1970-01-01
    相关资源
    最近更新 更多