1. 程式人生 > >Word VBA 把一個Word檔案中的內容通過字串操作複製到另一個Word檔案內(要求不允許出現空行)

Word VBA 把一個Word檔案中的內容通過字串操作複製到另一個Word檔案內(要求不允許出現空行)

Sub 巨集1()
'
' 巨集1 巨集
'
    Documents.Open FileName:="D:\VBA\被插入文字的檔案.docx", ConfirmConversions:=False, ReadOnly _
        :=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate _
        :="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="" _
        , Format:=wdOpenFormatAuto, XMLTransform:=""
    Selection.WholeStory

'
    Documents.Open FileName:="D:\VBA\待插入到另一個檔案中的文字檔案.docx", ConfirmConversions:=False, ReadOnly _
        :=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate _
        :="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="" _
        , Format:=wdOpenFormatAuto, XMLTransform:=""


    '選中所有的文字
    Selection.WholeStory





'回車符號
qhhc = Chr(13)

'把選中的文字賦值
ssstring_selection = Selection.Text

'設定預設數值為1
ssstring_selection_n1 = 1


'下面是迴圈語句:do until    ...   loop,直到字串的第一個字元為回車符號。
'要求這樣的文章內,不出現單獨的回車符號空行才行。

Do Until ssstring_selection_n1 = 0

'算出字串的長度
len11 = Len(ssstring_selection)

'用查詢字串函式instr,查詢字串中的第一個回車符號
ssstring_selection_n1 = InStr(ssstring_selection, qhhc)


'去除第一個回車符號(包括回車符)之前後,剩餘的字串個數。
len12 = len11 - ssstring_selection_n1


'減去回車符號之後,左邊的字元個數
ssstring_selection_n1 = ssstring_selection_n1 - 1

'用left函式,取出左邊的字串
temptext = Left(ssstring_selection, ssstring_selection_n1)

'只留下右邊的字串。
ssstring_selection = Right(ssstring_selection, len12)

'如何temptext不等於空字串,則
If temptext <> "" Then


Windows("被插入文字的檔案.docx").Activate

ActiveDocument.Content.InsertAfter temptext

'把游標移動到文件未尾,下一句為進行回車。
Selection.EndKey Unit:=wdStory
Selection.TypeParagraph

End If

Loop


    ActiveWindow.Close
End Sub

要求:Word2007 或者 Word2010下操作。