【发布时间】:2015-02-03 17:13:12
【问题描述】:
我希望使用 AHKscript 中的 COM 对象将 Excel 工作表中包含的数据行复制/粘贴到 Web 表单中。我无法提取 Excel 工作表中包含的数据的最后一行,以便我可以告诉脚本仅循环包含数据的行。
我正在使用 stackflow here 和 here 上的答案来计算最后一行,但很难让代码正常工作:
filepath := "C:\.....\test.xlsx"
X1 := ComObjCreate("Excel.Application")
X1.Visible := 1
X1.Workbooks.Open(filepath)
X1.ActiveWorkbook.Sheets("Input").Activate
Rows := X1.ActiveSheet.Cells.Find(What:="*", After:=X1.ActiveSheet.Range("A1"), SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
MsgBox % "value is" . Rows
Return
代码在第 6 行中断(行 := ...),返回 0x800200005 - 专门使用“查找”方法的类型不匹配错误。
让我不解的是:
- 当我删除 SearchOrder 和 SearchDirection 参数时,第 6 行中的代码有效
- 第 6 行中的代码在 Excel 中作为宏粘贴到 VBA 中时有效
- 代码与使用宏记录器时Excel在VBA中记录的代码类似(不包括一些参数)
运行 Windows 7 Enterprise、MS Excel 2010 和 Autohotkey 1.1.16.05。
【问题讨论】:
-
xlByRows 和 xlPrevious 是 excel 内容,ahk 不知道它们,你需要在脚本中定义它们
-
如果您找到正确答案,请发布并接受。
标签: excel vba com autohotkey