"Vorwort"
Ich weiss, dass dies ein Excel-Forum ist und nicht speziel für Word.
Aber da ich weiss, dass man durch Excel-vba auch in Word Tabellen erstellen kann, kann ich mir vorstellen, dass dieses Problem troz WORD-vba vermutlich einfach lösbar sein müsste.
Lieber Leser:
Ich versuche aktuell in einem Word-Dokument mittels VBA automatisiert Hyperlinks, welche auf andere Dokumente Zeigen, zu erzeugen.
Mein VBA-Code-Entwurf zu unterst
Zentral in einem Ordner sind alle Dokumente abgelegt, welche mittels Link geöffnet werden sollen.
Ich habe in meinem Word-Dokument eine Tabelle mit zwei Spalten.
(siehe hier die Tabelle)
https://www.herber.de/bbs/user/156585.doc
Die 1.te Spalte enthält der Name des Dokuments und die 2-te Spalte die Datei-Endung. Zmb. ".pdf" . Mittels Stringoperation führe ich die beiden "Strings" zusammen. Und dann erzeuge ich anhand dieses Strings einen Hyperlink.
Leider ist es nun so, dass dieser "zusammengefügter String" Zeichen enthält, welche ich nicht verstehe, woher sie kommen. Und deshalb funktioniert dann auch der Link nicht.
Folgender nicht funktionierender Link wird erzeugt "Dokument1%0d%07.pdf%0d%07"
Ich bräuchte aber nur "Dokument1.pdf"
Ebenfalls wird beim Schreiben des Links in die Tabelle eine ungewollte leere Zeile in die Zelle eingefügt.
Woher kommen im erzeugen Link diese %0d%07 %0d%07 Zeichen? Wie entferne ich diese?
Wie entferne ich die erzeugte Leerzeile in der Word-Tabelle?
-> Besten Dank für die Rückmeldungen.
Ps: Ich bin nicht besonders mit VBA bewandert, aber ich lerne gerne dazu und möchte das Grundproblem verstehen.
Word 2019, Windows 10
________________________________________
Option Explicit
Sub InsertTextInCell()
Dim anzZeilen As Integer, i As Integer
Dim Text1 As String
Dim Text2 As String
Dim Text3 As String
Dim myrange As Object
Dim myCell_1 As Object
Dim myCell_2 As Object
anzZeilen = ActiveDocument.Tables(1).Rows.Count 'Zählt die Zeilen der Tabelle 2
If ActiveDocument.Tables.Count >= 1 Then
For i = 2 To anzZeilen ' Schleife durch alle Zeilen, starte bei zweiter Zeile
Set myCell_1 = ActiveDocument.Tables(1).Cell(Row:=i, Column:=1) 'Tabelle_2, Zeile i, 1 Spalte
Text1 = myCell_1 'Inhalt der Zelle in String kopieren
Set myCell_2 = ActiveDocument.Tables(1).Cell(Row:=i, Column:=2) 'Tabelle_2, Zeile i, 2 Spalte
Text2 = myCell_2 'Inhalt der Zelle in String kopieren
Text3 = Text1 & Text2 'Erzeuge zusammenhängender String
Set myCell_1 = ActiveDocument.Tables(1).Cell(Row:=i, Column:=1) 'Tabelle_2, Zeile i, 1 Spalte
'myCell_1 = Text3 ' kopiere erzeugten String in Zelle.
Set myrange = ActiveDocument.Tables(1).Cell(Row:=i, Column:=1).Range
'Erzeugt ein range-Objekt auf die Zelle, in der der Link stehen soll
ChangeFileOpenDirectory "C:\Users\debsil\Desktop\"
ActiveDocument.Hyperlinks.Add Anchor:=myrange, Address:= _
Text3, SubAddress:="", ScreenTip:="Click to open document", TextToDisplay:=Text1
Next i
End If
End Sub