מיזוג כמה קבצי וורד לקובץ אחד בקוד vba
-
אני רוצה למזג כמה קבצי וורד שמעוצבים באותו הסגנון לקובץ 1.
מצאתי את הקוד הזהSub MergeALL() Dim objWord As Object Dim objDoc As Object Dim myPath As String, myFile As String Set objWord = CreateObject("Word.Application") objWord.Visible = True Set objDoc = objWord.Documents.Add myPath = "C:\Users\User\Desktop\experience\" myFile = Dir(myPath & "*.docx", vbNormal + vbReadOnly + vbHidden) While myFile <> "" With objDoc.Bookmarks("\StartOfDoc").range .InsertFile FileName:=myPath & myFile, _ ConfirmConversions:=False, Link:=False, Attachment:=False .InsertBreak Type:=2 End With myFile = Dir() Wend objDoc.Characters(1).Delete End Sub
אמנם הקוד הזה עושה את העבודה אבל שני חלקים חסרים לי שלא הצלחתי לשנות.
- הקוד הזה מכניס את הקבצים הפוך (מבדיקה שלי הוא מכניס את הקובץ הראשון ומעליו הוא מכניס את הקובץ השני וכו') כך מה שצריך זה שלאחר העתקה הסמן יעבור לאחר הטקסט יוסיף מעבר מקטע ויעתיק את הקובץ הבא.
- סגירה ושמירה של הקובץ בנתיב הנ"ל בשם אחר.
-
בניסיון להעביר את הסמן לסוף המסמך מצאתי את הקוד הזה
Selection.EndKey Unit:=wdStory
מהמדריך הבא
אמנם לאחר שהכנסתי את זה לקוד באופן הבא
Set objDoc = objWord.Documents.Add myPath = "C:\Users\User\Desktop\experience\" myFile = Dir(myPath & "*.docx", vbNormal + vbReadOnly + vbHidden) While myFile <> "" With objDoc.Bookmarks("\StartOfDoc").range .InsertFile FileName:=myPath & myFile, _ ConfirmConversions:=False, Link:=False, Attachment:=False Selection.EndKey Unit:=wdStory .InsertBreak Type:=2 End With myFile = Dir() Wend objDoc.Characters(1).Delete End Sub
הסמן אינו עובר לסוף המסמך כלל....
מבדיקה בstackoverflow נראה שזה באג של וורד שאין לו תקנה (מקווה שלא)...