Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Objektvariable oder With-Blockvariable nicht festgelegt

Mitglied: FLX1990

FLX1990 (Level 1) - Jetzt verbinden

27.06.2013, aktualisiert 10:54 Uhr, 8088 Aufrufe, 11 Kommentare

Hallo,

habe ein vba-Script was eine bearbeitete csv aus Excel an Word übergibt und daraus dann einen Serienbrief macht

Der Excel-Part (das automatisierte Bearbeiten der csv) läuft sauber durch, doch als es dann an die Übergabe an Word geht kommt folgender Fehler:

Objektvariable oder With-Blockvariable nicht festgelegt

Die Vorlagen-Worddatei wird noch sauber geöffnet, nur die Daten können nicht mehr eingelesen werden.

Hier der Code:

01.
    sFile = "K:\XXX\Vorlagen_2003\TelefonverzeichnisXXX.doc" 
02.
    Set WinWord = CreateObject("Word.Application") 
03.
    
04.
    With WinWord 
05.
        .Visible = True 
06.
        Application.Wait DateAdd("s", 1, Now()) 
07.
        .Documents.Open Filename:=sFile 
08.
        Application.Wait DateAdd("s", 1, Now()) 
09.
        '//WinWord.Documents.Open ("K:XXX\Vorlagen_2003\Telefonverzeichnis\XXX.doc") 
10.
        With WinDoc 
11.
            With .MailMerge 
12.
                .OpenDataSource Name:=strDatenQuelle, LinkToSource:=True, Format:=0, SQLStatement:="SELECT * FROM `tp.csv$`" 
13.
                .Destination = 0 
14.
                .SuppressBlankLines = True 
15.
                With .DataSource 
16.
                  .FirstRecord = wdDefaultFirstRecord 
17.
                  .LastRecord = wdDefaultLastRecord 
18.
                End With 
19.
                .Execute Pause:=False 
20.
                Set docSerienbrief = WinWord.ActiveDocument 
21.
                .DataSource.Close 
22.
                 
23.
                 
24.
            End With 
25.
        End With 
26.
 
27.
        Set docSerienbrief = .Documents(1) 
28.
        WinDoc.Close False 
29.
         
30.
    End With
In Zeile 11 steckt laut vba besagter Fehler.

Ich hatte das Makro vorher mit Office '03 im Einsatz, und da lief alles wunderbar.
Jetzt mit der 10er tritt der Fehler jedoch auf.

Ich hatte vorher einen anderen Fehler:
In Zeile 7 bekam ich den Fehler "Befehl misslungen".
Eine Pause mit Application.Wait DateAdd("s", 1, Now()) löste das Problem (zur Sicherheit dahinter direkt nochmal Eine...)

Nun ja, aber beim 2ten Fehler stecke ich fest.


Könnt ihr mir helfen?
Mitglied: dog
27.06.2013 um 11:21 Uhr
In Zeile 11 steckt laut vba besagter Fehler.

Da hat VBA auch völlig recht.
Wo soll die Variable auch herkommen?
Bitte warten ..
Mitglied: colinardo
27.06.2013, aktualisiert um 12:11 Uhr
Hallo Sibbel,

  1. das Objekt WinDoc existiert nicht. Zeile 7 sollte so lauten set WinDoc = .Documents.Open (Filename:=sFile)
  2. die 4-Fach verschachtelten With-Blöcke bergen Fehlerquellen.

Grüße Uwe
Bitte warten ..
Mitglied: FLX1990
27.06.2013 um 11:49 Uhr
Ach nein...
keine Ahnung wieso da WinDoc stand und warum das funktioniert hat...

Naja ich habs mit WinWord ersetzt und bekomme immer noch einen Fehler in Zeile 11:
Objekt unterstützt diese Eingenschaft oder Methode nicht
Bitte warten ..
Mitglied: colinardo
27.06.2013, aktualisiert um 12:04 Uhr
das muss ja auch ein Objekt des Typs Document sein und nicht Application. mach das so wie ichs geschrieben habe
Bitte warten ..
Mitglied: FLX1990
27.06.2013 um 12:09 Uhr
Zeile 7 sieht bei mir jetzt so aus:
set WinDoc = .Documents.Open Filename:=sFile

beim Ausführen bekomm ich jedoch die Meldung:
Fehler beim kompilieren: Erwartet: Anweisungsende
Bitte warten ..
Mitglied: colinardo
27.06.2013 um 12:12 Uhr
da fehlen noch die Klammern
set WinDoc = .Documents.Open (Filename:=sFile)
Bitte warten ..
Mitglied: FLX1990
27.06.2013 um 12:42 Uhr
Ach so...

Gut das klappt schonmal,
leider habe ich wieder in zeile 11 ein "Objekt unterstützt diese Eingenschaft oder Methode nicht"...
Bitte warten ..
Mitglied: colinardo
27.06.2013, aktualisiert um 13:54 Uhr
Das Problem sind wie schon gesagt die verschachtelten WITH-Blöcke. Bei verschachtelten With-Blöcken gilt der Punkt immer für das Objekt des äußersten WITH-Blocks.
Versuch es erst mal damit:
01.
sFile = "K:\XXX\Vorlagen_2003\TelefonverzeichnisXXX.doc" 
02.
Set WinWord = CreateObject("Word.Application") 
03.
    
04.
With WinWord 
05.
    .Visible = True 
06.
    Set WinDoc = .Documents.Open(FileName:=sFile) 
07.
    WinDoc.MailMerge.OpenDataSource Name:=strDatenQuelle, LinkToSource:=True, Format:=0, SQLStatement:="SELECT * FROM `tp.csv$`" 
08.
    WinDoc.MailMerge.Destination = 0 
09.
    WinDoc.MailMerge.SuppressBlankLines = True 
10.
    WinDoc.MailMerge.DataSource.FirstRecord = wdDefaultFirstRecord 
11.
    WinDoc.MailMerge.DataSource.LastRecord = wdDefaultLastRecord 
12.
    WinDoc.MailMerge.Execute Pause:=False 
13.
    Set docSerienbrief = WinWord.ActiveDocument 
14.
    WinDoc.MailMerge.DataSource.Close 
15.
    WinDoc.Close False 
16.
    Set docSerienbrief = .Documents(1) 
17.
End With
Bitte warten ..
Mitglied: FLX1990
27.06.2013 um 13:43 Uhr
Es wird immer dubioser,
Er sagt mir jetzt wieder in Zeile 6, dass der "befehl misslungen" sei...

Nur, einmal hat es funktioniert...
Jetzt jedoch nichtmehr

Alle Dokumente sind geschloßen etc.
Nichts ist durch einen Anderen gesperrt.
Bitte warten ..
Mitglied: colinardo
27.06.2013, aktualisiert um 13:55 Uhr
schau mal mit dem Taskmanager ob vielleicht noch offene WORD-Instanzen im Hintergrund vorhanden sind, und schieß diese ab.
Und tausche die Reihenfolge dieser Zeilen :
01.
Set docSerienbrief = .Documents(1) 
02.
WinDoc.Close False
in
01.
WinDoc.Close False 
02.
Set docSerienbrief = .Documents(1)
Bitte warten ..
Mitglied: FLX1990
27.06.2013 um 15:55 Uhr
hat auch nur einmal, direkt beim Ändern --> Ausführen geklappt.
Danach der selbe Fehler...

Ich weiß nicht woran das liegt.
Habe aber aufgegeben :D

Die Verarbeitung mach ich jetzt über ein Makro in Excel, aber übergeben wird es als csv in iReport ...
Viel einfacher dort...


Tortzdem recht herzlichen Dank für eure und vor allem deine, colinardo, Hilfe.

Gruß, Sibbel
Bitte warten ..
Ähnliche Inhalte
Windows Systemdateien

Laufzeitfehler 91 Objektvariable oder With-Blockvariable nicht festgelegt

Frage von DogukannWindows Systemdateien2 Kommentare

Hallo zusammen, ich habe wieder mal einen Problem das ich nicht lösen kann. Vielleicht wurde dieses Problem hier schon ...

Windows Netzwerk

Server nach festgelegtem Zeitraum sperren

gelöst Frage von jale29Windows Netzwerk19 Kommentare

Guten Morgen liebe Community, Die Situation sieht wie folgt aus: Unsere Firma würde gerne Server zu Testzwecken für 2 ...

Windows Server

Basisverzeichnis der Terminaldienste wurde nicht festgelegt

Frage von mexxWindows Server1 Kommentar

Hallo, in einer W2k8 R2 Umgebung mit Terminalservern, AD und GPO erhalte ich bei Anmeldung der User im Systemevent ...

Visual Studio

Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

gelöst Frage von soritoseVisual Studio2 Kommentare

hallo ich bin es mal wieder ich hoffe ich nerve nicht habe mal wieder ein kleines Problem und zwar ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 6 StundenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 6 StundenSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Viren und Trojaner
Neue Avira Management Console Egosecure
Information von OSelbeck vor 1 TagViren und Trojaner1 Kommentar

Hallöchen zusammen, ich weiß nicht, wer von euch noch Avira einsetzt Wir haben ein paar Kunden Avira hatte ja ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 1 TagDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Heiß diskutierte Inhalte
Exchange Server
Exchange Postfach Einbindung Betriebs-rat -Arzt, Bewerbung .
Frage von YellowcakeExchange Server15 Kommentare

Hey ich habe da mal eine Denksport Aufgabe bekommen Genutzt wird ein Exchange Server 2010. hier gibt es den ...

Datenschutz
Telematikinfrastruktur Erfahrungsaustausch
Frage von MOS6581Datenschutz12 Kommentare

Moin, unter meinen Kunden befinden sich auch einige Ärzte, welche sich künftig mit der Telematikinfrastruktur-Geschichte der Gematik herumärgern dürfen. ...

Windows Server
Delgegierte OU via RDP verwalten - Objektverwaltung zuweisen
gelöst Frage von TOAOICEWindows Server12 Kommentare

Hallo, ich habe folgendes Problem. Ich möchte in meiner Domäne (Server2016), einer Gruppe (OUAdmin) Berechtigungen auf die OU Test ...

Windows Server
Downgrade von Windows Server 2016 auf 2012 - Wie vorgehen?
Frage von EstefaniaWindows Server12 Kommentare

Guten Ich habe eine Frage an Erfahrene unter euch. Durch einen InPlace Upgrade wurde Windows Server 2012 auf die ...