Vba 如何编写Excel 2013的电子表格比较脚本?

Vba 如何编写Excel 2013的电子表格比较脚本?,vba,excel,office-2013,excel-2013,Vba,Excel,Office 2013,Excel 2013,我正在尝试将Excel 2013的Inquire插件中的奇特新函数合并到VBA脚本中 计划是使用一个宏来自动比较两个具有预定义名称的电子表格,并将所有差异导出为新的电子表格 迄今为止没有成功 以下是我迄今为止所尝试的: 通常,为了学习如何自动化一些Excel功能,我使用Record宏。 如果失败了,我会查看可添加引用的列表,看看是否遗漏了一些明显的内容。 在本案中,这两项都失败了。没有出现与电子表格比较相关的代码,当我记录一个宏时,只出现了外围设备,如cell select。所有可添加的引用看起

我正在尝试将Excel 2013的Inquire插件中的奇特新函数合并到VBA脚本中

计划是使用一个宏来自动比较两个具有预定义名称的电子表格,并将所有差异导出为新的电子表格

迄今为止没有成功

以下是我迄今为止所尝试的:

通常,为了学习如何自动化一些Excel功能,我使用Record宏。 如果失败了,我会查看可添加引用的列表,看看是否遗漏了一些明显的内容。 在本案中,这两项都失败了。没有出现与电子表格比较相关的代码,当我记录一个宏时,只出现了外围设备,如cell select。所有可添加的引用看起来都不像电子表格比较

那么,如何从VBA编写Excel 2013年电子表格比较脚本呢?

你不能

VBA不包括本例中的加载项

电子表格比较是被微软吞并的第三方插件

如果您需要可脚本化的比较,您可以找到对每个单元格、每行执行的比较。。。网络上的一种东西。

我打开了一个用于从.net应用程序自动化电子表格比较工具的应用程序,但除了从命令行执行它之外,我还没有找到其他方法

可以从VBA加载项执行此操作。您只需找到可执行文件SPREADSHEETCOMPARE.EXE(通常位于C:\Program Files x86\Microsoft Office\Office15\DCF中),然后在命令行中以指令文件作为输入参数执行它

此指令文件必须是ASCII文件,具有两个Excel文件路径,以便在单独的行中进行比较

创建runCompare.cmd文件:

REM Execute from command line spreadsheetcompare.exe 
REM 
cd C:\Program Files (x86)\Microsoft Office 2013\Office15\DCF
spreadsheetcompare.exe  C:\reportNames.txt
在C:\reportNames.txt中,将要比较的.xlsx文件保存在同一行:

C:\fileA.xlsx C:\fileB.xlsx
执行runCompare.cmd


+一个很好的问题。我将在周末回家访问xl13时查看这一点。[我删除了我以前的评论,因为它是胡言乱语…]方法调用将可用,因为它是一个COM加载项,因此如果所有其他操作都失败,您可以使用visual studio插入dll,查看它公开了哪些方法,然后从vba将其自动化,就像您将文件系统对象一样。如果没有做到这一点,我所读到的关于AddinforExcel的任何内容都不可能复制,如果您使用正确的XML转换,这就是我用来实现自动化的两种方法。你有什么实际问题?录制宏时没有出现代码?代码出现了,但太复杂了?在引用中找不到COM加载项?@electrillama感谢您的提示-我已使用您的问题的答案更新了问题的Peardsheet compare链接。这是一篇旧文章,但如果您有一组固定的参数,则编写它不会花费很长时间。在将文件名分别放在两行之前,我无法使其正常工作。