AHKv2 无法使用 ComObjGet 偏移 excel 值 - '错误:此“String”类型的值没有名为“Offset”的方法。'

问题描述 投票:0回答:1

我有 2 个代码。一个工作完美无缺,而另一个几乎完全相同,则不然。

你能指出我哪里错了吗?

工作 - 测试代码以使其正常工作

wbPath := A_Desktop "\Test File AHK.xlsx"
xl := ComObjGet(wbPath)

^+F1::
{
xl.Sheets(1).Range("A:A").Find(3).Offset(0,3).Value := ComObjActive("Excel.Application").ActiveCell.Value ; Works
}

不工作 - 我想使用的实际代码

wbPath := A_Desktop "\INVOICING SHEET.xlsx"
xl := ComObjGet(wbPath)

!+x::
{
title := WinGetTitle("A") ; Works
UniqueRef := Trim(SubStr(title,1,InStr(title," (")-1)) ; Works

msgbox ComObjActive("Excel.Application").ActiveCell.Value ; Works
xl.Sheets(1).Range("A:A").Find(UniqueRef).Offset(0,11).Value := ComObjActive("Excel.Application").ActiveCell.Value
}

上下文:我的目标是检索当前文档(作品)标题中的唯一引用,在外部工作表中查找位置并在我正在使用的工作表中输入 ActiveCell 的值。

在代码 2 中,ActiveCell 部分可以工作,但它只是不允许我使用偏移量,即使它在代码 1 中很好。特别是这一行:

xl.Sheets(1).Range("A:A").Find(UniqueRef).Offset(0,11).Value

错误:

Error: This value of type

所有路径均已检查且正确。我的 Excel 工作表或 Office 版本(完整付费版本 - Office 2021)没有任何问题。

非常感谢任何帮助!

excel autohotkey offset comobject ahk2
1个回答
0
投票

如果

xl.Sheets(1).Range("A:A").Find(UniqueRef)
没有发现任何问题,就会出现问题。

通常应通过以下方式完成:

' VBA
Set a = xl.Sheets(1).Range("A:A").Find(UniqueRef)
if Not a Is Nothing Then x = a.Offset(0,11).Value
© www.soinside.com 2019 - 2024. All rights reserved.