Excel an Word Codeoptimierung
Volker
Ich übergebe mittels nachfolgenem Code Daten aus einer Tabelle in ein Word Dokument.
funktionierte auch soweit. Dauert aber ziemlich lange -bei 270 zu befüllenden Textmarken-
wdAnw.ActiveDocument.FormFields.Item("Text1").Result = Cells(2, 1) 'Eingabe1 Zeile1
wdAnw.ActiveDocument.FormFields.Item("Text2").Result = Cells(2, 2)
wdAnw.ActiveDocument.FormFields.Item("Text3").Result = Cells(2, 3)
wdAnw.ActiveDocument.FormFields.Item("Text4").Result = Cells(2, 4)
wdAnw.ActiveDocument.FormFields.Item("Text5").Result = Cells(2, 5)
wdAnw.ActiveDocument.FormFields.Item("Text6").Result = Cells(2, 6)
Nachdem ich wegen eines anderen Problems diesen Code gepostet hatte, bekam ich als Alternative
With wdAnw.ActiveDocument.FormFields
For i = 1 To 6
If Cells(2, i) = Empty Then Exit
Sub 'Abbrechen, wenn Zelle leer ist
.Item("Text1" & i).Result = Cells(2, i)
Next i
End With
freundlicherweise zur Verfügung gestellt. Ich bekam ihn aber nicht eingebaut :-((((
Somit habe ich mit dem oberen Code gearbeitet. Jetzt nervt mich aber die Wartezeit.
Somit möchte ich -mit Eurer Hilfe- versuchen das Ding doch lauffähig zu bekommen.
Hier der Code wie er im Modul steht.
Private Declare
Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Option Explicit
Sub übergabe_an_word()
Dim wdAnw As Object
Dim i As Integer
On Error Resume Next
Set wdAnw = GetObject("Word.Application") '.10
If Err.Number 0 Then
Err.Clear
Set wdAnw = CreateObject("Word.Application") '.10
wdAnw.Visible = True: 'objWW.WindowState = wdWindowStateMaximize
Else
wdAnw.Activate
wdAnw.Visible = True:
End If
wdAnw.Application.Documents.Open "C:\Fahrschulverwaltung\Modulverwaltung\Modulnachweis.dot"""
wdAnw.ActiveDocument.FormFields.Item("Text1").Select
With wdAnw.ActiveDocument.FormFields
For i = 1 To 6
If Cells(2, i) = Empty Then Exit Sub
.Item("Text1" & i).Result = Cells(2, i) 'Eingabe1
Next i
End With
'WORD-Instanz schliessen
'wdAnw.Application.Quit (True)
'Variable leeren
'Set wdAnw = Nothing
End Sub
Bin für jeden Hinweis Dankbar!!
Danke und
Gruss Volker