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

时间:2012-12-04 12:15:09

标签: excel vba excel-vba office-2013 excel-2013

我正在尝试将Excel 2013的“查询加载项”中花哨的新Spreadsheet Compare函数合并到VBA脚本中。

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

迄今没有成功。

这是我到目前为止所尝试的内容:

  1. 通常,要学习如何自动化某些Excel功能,我使用Record Macro。
  2. 如果失败了,我会查看可添加引用的列表,看看我是否遗漏了一些明显的东西。
  3. 在这种情况下,这两个都失败了。当我录制一个宏(只出现像cell-select这样的外围设备)时,没有任何代码与电子表格比较相关。并且没有一个可添加的引用看起来像Spreadsheet Compare。

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

3 个答案:

答案 0 :(得分:3)

我打开了一个similar question来自动化.NET应用程序中的Spreadsheet Compare工具,但我还没有找到任何其他方法,而不是从命令行执行它。

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

此指令文件必须是一个ASCII文件,其中两个Excel文件路径将在不同的行中进行比较。

答案 1 :(得分:1)

你不能。

在这种情况下,VBA不包括add'ins。

Spreadsheet compare是第三方插件,被微软吞噬。

如果您需要可编写脚本的比较,您可以找到针对每个单元格执行的操作,对于每一行...都可以在网上查找。

答案 2 :(得分:1)

  1. 创建一个runCompare.cmd文件:

    total_score(Hero, Score):-
        aggregate_all( sum(Points),
                       ( defeated(Hero, Monster),
                         score(Monster, Points)),
                       Score).
    
  2. 在C:\ reportNames.txt中,将要比较的.xlsx文件保存在同一行:

    REM Execute from command line spreadsheetcompare.exe 
    REM 
    cd C:\Program Files (x86)\Microsoft Office 2013\Office15\DCF
    spreadsheetcompare.exe  C:\reportNames.txt
    
  3. 执行runCompare.cmd。