【发布时间】:2014-03-09 16:23:20
【问题描述】:
我阅读了所有标准的 Win32::OLE 文本,例如 Jan Dubois' classic,当然还有 official package doc、Microsoft 的简洁文章等等。
我错过了将捕获的 VBA Excel 宏语句转换为 Perl Win32::OLE 语句的规则。
假设我有一个捕获的 VBA 宏:
Sub cntrl_arrow_down()
Range(Selection, Selection.End(xlDown)).Select
End Sub
假设我已经获得了一个应用程序 (Excel) 对象、一个“书”对象、一个“工作表”对象并激活了工作表。此外,我选择了一个单元格,我正在寻找该单元格所在列的向下范围。我想获得一个“范围”对象,然后我可以将范围读入 2D Perl 数组。
拜托,我需要规则,而不仅仅是这一行的答案。
谢谢!
【问题讨论】:
-
如果您使用 Perl,为什么必须使用 Win32::OLE,而不是 Excel 模块之一?当然,如果您真的很想知道如何运行 VBA 宏,那是一回事。但是,如果您只需要与 Excel 文件交互,那么 Perl 中有一些模块可以做到这一点(没有 OLE)。
-
一个好问题!让我看看。
-
谢谢jimtut!很久以前,我用 Perl 来操作 Excel 电子表格,包括读写,当时我确信 Win32::OLE 一定是最好的,是由开发 OLE 的人开发的,不是吗?我最近需要再做一次,所以我从未停下来重新考虑。 jimtut 让我这样做了,我发现潜伏在 CPAN 上的所有这些 xxx::Excel::yyy 模块都更易于使用,并且更易于添加和增强。就我而言,它是 Excel::Table 及其后代。