How to script Excel 2013's Spreadsheet Compare?
Asked Answered
T

3

16

I'm trying to incorporate the fancy new Spreadsheet Compare function from Excel 2013's Inquire Add-in, into a VBA script.

The plan is to have a macro to automate comparison between two spreadsheets with predefined names, and to export all the differences as a new spreadsheet.

Without success, to date.

Here's what I've tried so far:

  1. Normally, to learn how to automate some Excel functionality, I use Record Macro.
  2. If that fails, I look down the list of addable references, to see if I'm missing something obvious.

Both of those have failed in this case. No code appeared relevant to the Spreadsheet Compare, when I recorded a macro (only the peripheral stuff like cell-select appeared). And none of the addable references looked anything like Spreadsheet Compare.

So how can I script Excel's 2013 Spreadsheet Compare, from VBA?

Tiphany answered 4/12, 2012 at 12:15 Comment(6)
+1 great question. I will look at this at the weekend when I get home and get access to xl13.Staats
[I deleted my previous comment as it was gibberish...] The method calls will be available since it's a COM addin so if all else fails you can tear into the dll using visual studio to see what methods it exposes then automate it from vba like you would a FileSystemObject. Failing that nothing I've read about the addin for excel would be impossible to reproduce if you threw the right XML transforms around.Bombay
That's the two methods I also use to do automation. What actual problems are you having? code didn't appear when recording a macro? code appeared but is too complicated? Can't find the COM add in in the references?Vermicide
@ElectricLlama thanks for the prompt - I've updated the question with the answers to your questionsTiphany
Speardsheet compare Link rot. This is an old post but if you have a fixed set of parameters it would not take long to write.Photophilous
@Photophilous thanks, link fixed. Sadly, no fixed set of parameters.Tiphany
D
3

I opened a similar question for automating the Spreadsheet Compare tool from a .NET application, but I haven't found any other way yet than executing it from command-line.

You can do this from your VBA add-in. All you need is to locate the executable file SPREADSHEETCOMPARE.EXE (usually in C:\Program Files (x86)\Microsoft Office\Office15\DCF) and to execute it in command-line with an instruction file as input argument.

This instruction file must be an ASCII file with the two Excel file paths to compare written in separate lines.

Deice answered 24/6, 2014 at 8:11 Comment(1)
I invoked SPREADSHEETCOMPARE.EXE with the instruction file pointing to 2 excels that do have a difference, but there is no output file. Where does it store the output of any differences found???Severally
A
1

You can't.

VBA does not cover add'ins as in this case.

Spreadsheet compare is a 3rd party plugin which got swallowed by Microsoft.

If you need scriptable compare you can find those which do for each cell, for each row... kind of thing on the net.

Arvizu answered 17/12, 2012 at 13:59 Comment(0)
I
1
  1. Create a runCompare.cmd file:

    REM Execute from command line spreadsheetcompare.exe 
    REM 
    cd C:\Program Files (x86)\Microsoft Office 2013\Office15\DCF
    spreadsheetcompare.exe  C:\reportNames.txt
    
  2. In C:\reportNames.txt, save in the same line the .xlsx files you wish to compare:

    C:\fileA.xlsx C:\fileB.xlsx
    
  3. Execute runCompare.cmd.

Inebriety answered 10/3, 2016 at 0:17 Comment(2)
I couldn't get this to work until I placed the filenames on 2 SEPARATE LINES.Walcott
I invoked SPREADSHEETCOMPARE.EXE with the instruction file pointing to 2 excels that do have a difference, but there is no output file. Where does it store the output of any differences found???Severally

© 2022 - 2024 — McMap. All rights reserved.