AW: Tabelle formatieren
03.11.2009 16:35:08
fcs
Hallo Philipp,
die Zellen und Spalten einer Tabelle kannst du über die Nummern ansprechen wie in Excel.
Die Textpositionen muss du als Zahlen vorgeben oder per Funktion "Instr" ermitteln.
Dabei muss man beachten, dass Word immmer ab dem 1. Zeichen des Dokuments zählt mit 0 als 1. Position im Dokument. Dabei kann man das 1. Zeichen der Zelle als Bezugsposition benutzen.
Gruß
Franz
Schaut dann etwa so aus:
Sub test()
Dim Daten_channel
Dim Tabelle As Table, myRange As Range, rngZelle As Range
Dim objDoc As Document, Pos1 As Long, Pos2 As Long
Set objDoc = ActiveDocument
'testdaten
Daten_channel = Array(1, 2, 3, 4, 5)
Set myRange = objDoc.Range(2, 2)
Set Tabelle = objDoc.Tables.Add(Range:=myRange, _
NumRows:=UBound(Daten_channel) + 3, NumColumns:=2)
With Tabelle
Set rngZelle = .Cell(3, 1).Range
With rngZelle
.Text = "Test" & Chr(13) & _
"Test2" & Chr(13) & _
"Test3"
' .Text = "Test" & Chr(13) & _
"Test2"
If .Paragraphs.Count > 1 Then
'Position des 1. Zeilenumbruchs
Pos1 = .Start + InStr(1, .Text, Chr(13))
'Position des 2. Zeilenumbruchs oder Ende Zellentext
If .Paragraphs.Count = 1 Then
Pos2 = .End
Else
Pos2 = .Start + InStr(Pos1 - .Start + 1, .Text, Chr(13))
End If
'Text von Pos1 bis Pos2 inklusive fett formatieren
objDoc.Range(Pos1, Pos2).Bold = True
End If
End With
End With
End Sub