Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Fehler bei Tabelle in Word generieren, wird aber erstellt
#1
Ha((o an alle.

Habe einen etwas kuriosen Fehler.
Ich erstelle aus Excel eine Tabelle in Word via VBA. An der Textmarke "Tabelle". Eigentlich klappt es. Die Tabelle wird generiert. Dennoch bekome ich jedersmal einen "Laufzeitfehler 13: Typen unverträglich". Hat jemand eine Idee was ich falsch mache?

Hier der Code:
"
Dim wdtable As Tables

    dateipfad = "C:\Users\Paul\Documents\Benutzerdefinierte Office-Vorlagen\"
    dateiname = "Vorlage.dotm"
    
    Set wdapp = CreateObject("word.application")
    wdapp.Visible = True
    
    Set wddoc = wdapp.Documents.Open(dateipfad & dateiname)
  
    wddoc.Bookmarks("Tabelle").Select

    'hier erscheint nun der Fehler:
    Set wdtable = wddoc.Tables.Add(Range:=wddoc.Bookmarks("Tabelle").Range, NumRows:=3, NumColumns:=5,  DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed)
"
Würde mich freuen.
Nyn007
Nyn007
Antworten Top
#2
Hallo,

ändere mal die Word-Konstanten wie zum Beispiel wdWord9TableBehavior in ihren Wert um.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#3
Hallo, :19:

nimm "Dim wdtable As Object". :21:
________
Servus
Case
Antworten Top
#4
Moin!
Den Objekttyp Tables gibt es ja ohnehin nur bei gesetztem Verweis (early binding).
Dann kann man auch direkt 
Dim wdApp As New Word.Application
nehmen und braucht nicht den Umweg über CreateObject().
Daher sollte dann auch die Konstante wdWord9TableBehavior kein Problem darstellen.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#5
Hallo, :19:

also "Tables" ist eine Auflistung - "Table" ein Objekt -. deshalb richtig: :21:


Code:
Dim wdtable As Table

Oder eben Object. "... as Tables" ergibt keinen Sinn.
________
Servus
Case
Antworten Top
#6
Wo Du Recht hast … Wink
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#7
Jungs (und Mädels)

Ihr seid alle einfach toll. Schnell und gut beantwortet. Zumindest in der Summe.

Lösung:
"Dim wdtable As Object" ist richtig
"Dim wdtable As Table" hat leider nicht funktioniert.

Und der Tipp mit New Word.Application war auch ein toller Tipp. Je weniger Codezeilen um so besser.

Grüße
Nyn007
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste