【问题标题】:AutoHotkey ComObjActivate("Excel.Application") not working properlyAutoHotkey ComObjActivate(“Excel.Application”)无法正常工作
【发布时间】:2021-12-02 18:06:13
【问题描述】:

我创建了以下代码示例来演示我当前的代码,该代码过去可以工作,但在过去一周停止工作(这是开始):

^!f::
    CoordMode, Mouse, Client
    WinActivate, ahk_exe excel.exe
    xl := ComObjActive("Excel.Application")
    test := xl.ActiveCell.Value
    MsgBox % xl.ActiveCell.Value
    MsgBox, %test%
    Send, {Down}
return

我有第一行,因为完整的代码也使用鼠标单击某些对象。 然后我激活我在我的计算机上打开的一个 Excel(曾经被命名,但不是必需的)。 在此之后,我尝试使用 ComObjActivate("Excel.Application") 来使用 excel 的功能,但这似乎不再起作用,因为以下两个 MsgBoxes 都返回为空。

为什么这个 ComObjActivate 停止工作了?我根本没有更改代码,它曾经在一周前工作。提前致谢!

【问题讨论】:

  • 对我来说,您的代码 sn-p 按预期工作 - 显示两个带有 activecell 内容的 msgbox。
  • 感谢您的快速回复。我什至尝试一次用几个不同的 excel 来做到这一点,但我在 msgboxes 中没有得到任何东西。我想知道发生了什么事......
  • 也许你可以试试selection 而不是activecell ....
  • 我尝试使用此 xl.Range("A1").Select 并收到错误消息。我认为我的 ComObjActivate 工作不正常。但是,这段代码在我同事的电脑上运行得很好。

标签: excel autohotkey msgbox comobject


【解决方案1】:

仅将其发布为答案,因为我没有足够的声誉来发表评论。 application.ActiveCell 的文档提到“如果活动工作表不是工作表,则 ActiveCell 属性将失败。”

您可以在获取活动单元格之前尝试添加它吗?

 x1.Sheets("Name of Sheet").Select 

或者只是看看 x1.ActiveSheet 返回什么?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    相关资源
    最近更新 更多