Kolommen selectie tabel

Status
Niet open voor verdere reacties.
Het is deels gelukt. Als ik in Excel de samengevoegde cellen eerst splits, vervolgens de tabellen (bereiken) kopieer met Ctr+c en plak in Word met Ctr+v en de code gebruik van #3
Code:
Sub Wordtabel()

j = 2
For i = 1 To 34
With Selection.Tables(1)
    .Cell(j, 4).Merge .Cell(j, 7)
   ' .Cell(j, 4).Range.Text = RTrim(.Cell(j, 4))
    j = j + 35
End With
Next
End Sub

Dan worden de regel met kolommen die ik samengevoegd wil hebben ook samengevoegd alleen wordt de rijhoogte verdrievoudigd of zo door spaties achter de string in kolom 4. Dit heb ik proberen op te lossen met RTrim, maar dat werkt niet: de spaties blijven staan en de subscript van de string wordt verwijderd. In de bijlage heb ik een voorbeeld met 2 ingevulde tabellen.
 

Bijlagen

  • Wordtabel.docm
    18,8 KB · Weergaven: 28
Met de code:
Code:
    Set t = ActiveDocument.Tables(1)
    L = Len(t.Cell(j, 4).Range.Text)
zie ik nu wel dat het aantal karakters 20 is ipv 12, maar ben er nog niet achter hoe ik de 8 laatste spaties met vba kan verwijderen.
 
Heb nog een poging gewaagd om in VBA Word met code een selectie te selecteren en dan met DistributeWidth de kolommen gelijkmatig te verdelen en dat goed met twee tabellen maar zodra het er meer zijn (vraag me niet waarom) wordt de eerste rij van de selectie niet meegenomen in de herverdeling van de kolommen.
Code:
'j = 2
For i = 1 To 34
    With ActiveDocument
            Set s1 = .Range(.Tables(1).Cell(j, 1).Range.Start, .Tables(1).Cell(j + 24, 3).Range.End)
            s1.Select
            Selection.Tables(1).Columns.DistributeWidth
            Set s2 = .Range(.Tables(1).Cell(j + 1, 4).Range.Start, .Tables(1).Cell(j + 19, 7).Range.End)
            s2.Select
            Selection.Tables(1).Columns.DistributeWidth
    End With
    j = j + 35
Next

Ik heb het nu anders opgelost: In Excel heb ik bij de bovenste tabelkop voorloop spaties geplaatst zodat er in elke kolom kop evenveel karakters zitten en vervolgens heb ik alle tabellen gekopieerd en geplakt in Word. Het was even puzzelen om de juiste hoeveelheid voorloop spaties te krijgen maar uiteindelijk waren de kolombreedtes in Word overal gelijk. Daarna heb ik in vba Word de voorloopspaties weer verwijderd met gevonden code:
Code:
Sub remove_all_the_first_line_indent_spaces()
Dim i As Paragraph, n As Long
Application.ScreenUpdating = False 'close screen and refresh
For Each i In ActiveDocument.Paragraphs 'cycling in the pragraphs of the active document
    For n = 1 To i.Range.Characters.Count
        If i.Range.Characters(1).Text = " " Or i.Range.Characters(1).Text = " " Or i.Range.Characters(1).Text = Chr(9) Then
            i.Range.Characters(1).Delete
        Else: Exit For
        End If
    Next n
Next
Application.ScreenUpdating = True 'restore screen and refresh
End Sub

Probleem opgelost.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan