2012-12-04 4 views
12

Ich versuche, die ausgefallene neue Funktion Spreadsheet Compare aus dem Add-In von Excel 2013 in ein VBA-Skript zu integrieren.Wie skriptet Excel 2013 Spreadsheet Compare?

Der Plan ist, ein Makro zu haben, um den Vergleich zwischen zwei Tabellen mit vordefinierten Namen zu automatisieren und alle Unterschiede als eine neue Tabelle zu exportieren.

Ohne Erfolg, bis heute.

Hier ist, was ich versucht habe, so weit:

  1. Normalerweise lernen, wie man eine Excel-Funktionalität zu automatisieren, verwende ich Makro aufzeichnen.
  2. Wenn das fehlschlägt, schaue ich mir die Liste der hinzugefügten Referenzen an, um zu sehen, ob mir etwas offensichtlich fehlt.

Beide sind in diesem Fall fehlgeschlagen. Kein Code erschien relevant für den Spreadsheet Compare, als ich ein Makro aufzeichnete (nur das periphere Zeugs wie Zellauswahl erschien). Und keine der hinzugefügten Referenzen sah so aus wie Spreadsheet Compare.

Also, wie kann ich Excel 2013 Spreadsheet Compare, von VBA?

+2

+1 große Frage. Ich werde mir das am Wochenende ansehen, wenn ich nach Hause komme und Zugang zu xl13 bekomme. – brettdj

+1

[Ich löschte meinen vorherigen Kommentar, da es Kauderwelsch war ...] Die Methodenaufrufe werden verfügbar sein, da es ein COM-Addin ist. Wenn alles andere fehlschlägt, können Sie in die DLL eindringen, um zu sehen, welche Methoden es dann automatisiert es von vba wie Sie ein FileSystemObject. Failing, dass nichts, was ich über das Add-in für Excel gelesen habe, wäre unmöglich zu reproduzieren, wenn Sie die richtigen XML-Transformationen herumwerfen. –

+0

Das sind die beiden Methoden, die ich auch für die Automatisierung verwende. Welche aktuellen Probleme haben Sie? Code erschien nicht beim Aufnehmen eines Makros? Code erschien aber ist zu kompliziert? Kann das COM nicht in den Referenzen hinzufügen? –

Antwort

1

Sie können nicht.

VBA deckt keine Add'ins wie in diesem Fall ab.

Tabellenkalkulation ist ein 3rd-Party-Plugin, das von Microsoft geschluckt wurde.

Wenn Sie skriptfähige vergleichen müssen, können Sie diejenigen finden, die für jede Zelle, für jede Zeile ... Art von Sache im Netz tun.

3

Ich habe eine similar question für die Automatisierung der Tabellenkalkulation Tool aus einer .NET-Anwendung geöffnet, aber ich habe noch keinen anderen Weg als die Ausführung über die Befehlszeile gefunden.

Sie können dies über Ihr VBA-Add-In tun. Sie müssen lediglich die ausführbare Datei SPREADSHEETCOMPARE.EXE (normalerweise in C: \ Programme (x86) \ Microsoft Office \ Office15 \ DCF) suchen und sie in der Befehlszeile mit einer Anweisungsdatei als Eingabeargument ausführen.

Diese Anweisungsdatei muss eine ASCII-Datei mit den beiden zu vergleichenden Excel-Dateipfaden sein, die in separaten Zeilen geschrieben werden.

1
  1. erstellen runCompare.cmd Datei:

    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, in der gleichen Zeile speichert die XLSX-Dateien, die Sie wünschen, vergleichen:

    C:\fileA.xlsx C:\fileB.xlsx 
    
  3. Führen Sie runCompare.cmd aus.