2016-04-07 20 views
-2

Mein Szenario ist ein Dokument mit einer zweispaltigen Tabelle. Ich lese aus einer Datenbank und befülle jede Zeile/Spalte, aber für einige Datensätze möchte ich die beiden Spalten in eine Zelle zusammenführen und diese als eine Zeile auffüllen, um danach das zweispaltige Szenario fortzusetzen. Ich möchte eine VBA-Anweisung ausgeben, um die beiden Zellen zusammenzuführen, um eine Zelle über die gesamte Zeile zu machen. Dies ist unmöglich als neues Makro "aufzunehmen". Ich weiß nicht, was die Zeilennummer zur Laufzeit ist, ich kenne nur die Spaltennummern. Meine Suchzeichenkette ist: "" Word 2013 "VBA Tabelle merge Zellen", aber ich bekomme eine Menge Website, die Ihnen zeigen, wie es manuell, nicht mit VBA-Code zu tun.VBA-Code zum Zusammenführen zweier Zellen

Mein aktueller Code:

With ActiveDocument.Tables(1) 
.Cell(Row:=1, Column:=1).merge _ 
MergeTo:=.Cell(Row:=1, Column:=2) 
.Borders.Enable = True 
End With 

In dem Dokument, habe ich eine kleine Tabelle von einer Zeile und zwei Spalten. Aber ich sollte in der Lage sein, einen Tisch aus drei Reihen mit jeder Mischung von Spalten zu haben, oder? Ich möchte nur zwei beliebige Spalten auswählen und sie zusammenführen, um ein Leerzeichen zu machen, aber zur Laufzeit weiß ich nicht, welche Zeilennummer angegeben werden soll.

+0

Mein Dokument ist eine .dotm Vorlage, die eine bereits vorhandene Tabelle aus einer Zeile, zwei Spalten enthält. Wenn es gestartet wird, liest es aus einer Datenbank. Wenn Datensätze gelesen werden, wird der Tabelle eine neue Zeile hinzugefügt. Wenn ein bestimmter Datenbankwert angezeigt wird, möchte ich die beiden Zellen der Zeile in eine Zelle für die Zeile zusammenführen und eine "Kopfzeileninformation" in diese Zeile einfügen. Danach möchte ich die Daten weiterlesen, die folgenden Zeilen sind wieder zwei Spalten. Ich hoffe, das ist lesbar. Es klingt so kompliziert, aber mein Plan scheint sehr einfach zu sein. –

+0

https://msdn.microsoft.com/en-us/library/office/ff821310.aspx –

+0

Vielen Dank, Tim Williams, für Ihren Link. Es funktioniert jedoch nicht. Ich erhalte eine Fehlermeldung: Laufzeitfehler '5941': Das angeforderte Mitglied der Sammlung existiert nicht. –

Antwort

0

Endlich habe ich es geschafft, und ich möchte Ihnen nochmals für Ihre Hilfe danken. Hier ist mein aktueller Code. Das gesamte Dokument ist eine zweispaltige Tabelle, dünn und enthält Hyperlinks, so dass es auf einem iPhone gelesen und navigiert werden kann. Wenn sich ein Einheitenwert in den Daten ändert, möchte ich 1) unten eine neue Zeile einfügen und sie in eine Spalte zusammenführen, einen Link "Gehe zu Hause" hinzufügen und dann zweispaltige Zeilen hinzufügen.

Das Dokument wird schließlich in eine PDF konvertiert und von iOS-Benutzern aufgerufen.

'Add a row for a 'back to home' link 
    If (intUnitOrder > intCurrentUnit) Then 
     Selection.InsertRowsBelow (1) 
     rowno = Selection.Information(wdEndOfRangeRowNumber) - 1 
     With ActiveDocument.Tables(1) 
     .Cell(Row:=rowno, Column:=1).Merge MergeTo:=.Cell(Row:=rowno, _ 
     Column:=2) 
     End With 

     Selection.Tables(1).Rows(rowno).Range.ParagraphFormat. _ 
     Alignment = wdAlignParagraphRight 
     Selection.Shading.BackgroundPatternColor = RGB(230, 230, 230) 
     Selection.Font.ColorIndex = wdBlue 
     Selection.Font.Italic = True 

     ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _ 
     Address:="#Home", SubAddress:="", _ 
     ScreenTip:="Go back to the top", _ 
     TextToDisplay:="back to Home" 

     Selection.MoveDown wdLine, 1 
     intCurrentUnit = intUnitOrder 
    End If