2016-07-31 2 views
0

Ich habe keine Erfahrung in Word-oder Excel-Makros, aber ich möchte Excel-Daten in mehrere Word-Dateien importieren, die jeweils den gleichen Inhalt enthalten. (Ich dachte, diese Aufgabe könnte nicht so kompliziert sein, und ich habe versucht, sie über die Formletter-Funktion zu vervollständigen, aber als ich versagte, wurde mir klar, dass es viel komplizierter ist, als ich dachte. Dann dachte ich, vielleicht ist das so der richtige Ort um nachzufragen ...).Excel Daten zu Word-Vorlage über Suchen und Ersetzen - Mehrere Dokumente

Beispieldaten (Excel-Daten):

Varname Value 
    Var1  2 
    Var2  3 
    Var3  0.5 
    ... 

Beispieldaten (Word-Vorlage)

The following treats the topic on "Varname". Its Value is "Value". 

Also am Ende sollte es wie folgt aussehen:

The following treats the topic Var1. Its Value is 2. (saved as Var1.doc or even better Var1.txt, but *.doc would be ok for the beginning!) 
    The following treats the topic Var2. Its value is 3. (saved as Var2.doc) 
    The following treats the topic Var3. Its value is 0.5. (saved as Var3.doc) 
    ... 

Obwohl die tatsächlichen Text ist viel komplizierter und sollte nicht Teil des Codes selbst sein. Also ich dachte die beste Lösung muss etwas mit "finden" und "ersetzen" sein. Da ich Makros in Word/Excel völlig neu kenne, konnte ich nicht herausfinden, wie man die Excel-Daten für die "Ersetzen" -Funktion implementiert.

' Replace-Excel-Data-Macro 
    ' 
    ' 
     Selection.Find.ClearFormatting 
     Selection.Find.Replacement.ClearFormatting 
     With Selection.Find 
      .Text = """Varname""" 
      .Replacement.Text = "**???**" 
      .Forward = True 
      .Wrap = wdFindContinue 
      .Format = False 
      .MatchCase = False 
      .MatchWholeWord = False 
      .MatchWildcards = False 
      .MatchSoundsLike = False 
      .MatchAllWordForms = False 
     End With 
     Selection.Find.Execute Replace:=wdReplaceAll 
     With Selection.Find 
      .Text = """Value""" 
      .Replacement.Text = "**???**" 
      .Forward = True 
      .Wrap = wdFindContinue 
      .Format = False 
      .MatchCase = False 
      .MatchWholeWord = False 
      .MatchWildcards = False 
      .MatchSoundsLike = False 
      .MatchAllWordForms = False 
     End With 
     Selection.Find.Execute Replace:=wdReplaceAll 
    End Sub 

Es tut mir leid, wenn diese Frage vor gefragt wurde, ich nicht die richtige Hilfe bis jetzt vielleicht aufgrund meiner sehr begrenztes Wissen über dieses Makro-stuff .. Vielen Dank für Ihre Kommentare im Voraus finden konnten,! :)

Antwort

0

Sie können Serienbriefe in Winword verwenden, um solche Aufgaben einfach zu erledigen.

Sie füllen Ihre Vorlage aus der Datenquelle: execl/database/was auch immer Ihre Daten.

In Ihrer Vorlage definieren Sie den Feldnamen aus Ihrer Datenquelle.

Zum Beispiel Ihre Vorlage wie folgt aussehen:

The following treats the topic on <<Varname>> Its Value is <<Value>> 

Mit dem Assistenten:

im Assistenten Sie Ihre Vorlage mit Feldern definieren, Datenquelle

auf der Registerkarte Mailings, klicken Sie auf Start Seriendruck, und klicken Sie dann auf Schritt von Schritt Seriendruck-Assistent.

folgendermaßen vor, aus dem Tutorial:

How to use mail merge to create form letters in Word

+0

meine Antwort ist ein wenig spät, aber immer noch danke! Am Ende habe ich es genau so gemacht :) – GreenDot72