
Ich verwende ein Excel-Add-In, um Daten aus einer Excel-Tabelle in ein Word-Dokument einzufügen. Die Daten werden in verschiedene Word-Tabellen im Dokument eingefügt. In welche Tabelle eine bestimmte Teilmenge der Daten eingefügt wird, wird durch einen Wert in einer „Ziel“-Spalte in der Excel-Tabelle bestimmt.
Bisher bestand ein statischer Zusammenhang zwischen dem Wert der Zielspalte und der Reihenfolge der Zieltabellen, zB alles was dort ein ,A‘ hat kommt in die erste Tabelle im Word-Dokument, alles mit ,B‘ in die zweite und so weiter.
Nun werden Benutzer in Word kreativ, ordnen die Tabellen neu an, entfernen Tabellen, fügen neue Tabellen aus Stilgründen hinzu, ... – kurz gesagt, die Beziehung „alles, was zu ‚A‘ gehört, kommt in die erste gefundene Tabelle“ kann nicht mehr garantiert werden.
Gibt es eine Möglichkeit, über die Word-Benutzeroberfläche eine eindeutige ID für eine Word-Tabelle festzulegen (ich möchte, dass die Benutzer dies selbst tun, ohne auf Makros oder Add-Ins zurückgreifen zu müssen), die ich dann als Kennung zum Suchen der wahrscheinlichsten Zieltabelle innerhalb des Excel-Makros verwenden kann?
Antwort1
Es gibt keineTischEigenschaften in Word, die mit Ausnahme des Index (und möglicherweise ID
, aber nur, wenn das Dokument als Webseite gespeichert wird) eindeutig sein müssen.
Ich würde vorschlagen, die Title
Eigenschaft der Tabelle zu verwenden. Benutzer können dies folgendermaßen festlegen:
Klicken Sie mit der rechten Maustaste auf die Tabelle > Tabelleneigenschaften > Alternativtext > Titel
Und Sie können programmgesteuert auf die Eigenschaft zugreifen, wie (VBA-Beispiel):
Word.ActiveDocument.Tables.Item(1).Title
Sie können die Sammlung durchsuchen Tables
, um die Tabelle zu finden, deren Werte Title
korrekt sind.
Antwort2
Wenn esmuß seinein eindeutiger Name. Die einzige Option, die verwendet werden kann, ohne Funktionen zu aktivieren, die normalerweise im Entwicklermenü ausgeblendet sind, besteht darin, jeder Tabelle ein Lesezeichen zuzuweisen.
Die konsequente Vorgehensweise wäre, die Tabelle über das Auswahlfeld auszuwählen und über Einfügen->Links->Lesezeichen einen Namen anzugeben. Das Problem besteht jedoch darin, dass Word den Benutzer nicht warnt, wenn er ein Lesezeichen erneut verwendet – es verschiebt das Lesezeichen einfach. Ohne Makros usw. könnte der Benutzer also (a) einen beliebigen Lesezeichennamen angeben und damit etwas anderes im Dokument durcheinanderbringen, z. B. einen Querverweis, und (b) wenn er den Namen eines Lesezeichens angibt, das eine andere Tabelle identifiziert, würde diese Tabelle ihr Lesezeichen verlieren – würde der Benutzer das bemerken? Wie würde der Benutzer die Tabelle ohne Lesezeichen finden, wenn das Lesezeichen erst einmal verschoben ist?
Das Problem, dass andere Dinge im Dokument durcheinander geraten, könnte durch die Verwendung einer Namenskonvention wie „Beginnen Sie jeden Tabellenlesezeichennamen mit tbl_
oder tab_
“ reduziert oder eliminiert werden.