Board logo

標題: 請問用VBA執行WORD合併列印及其應用 [打印本頁]

作者: iceandy6150    時間: 2013-4-18 16:35     標題: 請問用VBA執行WORD合併列印及其應用

請問各位前輩
我想在Excel中放一個按鈕,按下後會開啟指定的word檔,並將Excel中的資料套印到word(合併列印),該怎麼寫呢?
比如說,excel中有兩個欄位,一是學號,一個是姓名,總數有10個學生
word中,姓名的後面要插入合併欄位《姓名》,學號亦同,套印後會有10張
直接開word操作合併列印是沒問題,但是要用按鈕我就不會了


<進階應用>
word是學生評語卡,有1~12格,每月一格,要輸入1評語
excel中我放入400筆名言佳句(編號、佳句)
設一按鈕,一個textbox(手動輸入放第幾格),另一個textbox(要印幾份)
比如現在4月,要印38份,佳句要放第4格,按下按鈕後會隨機從excel的400筆中抽取38筆
後執行合併列印到word上,(套印到第4格,共有38份)
這要如何達成呢?


<更進階應用>
word是學生基本資料卡,有學號、姓名、住址、電話
access中存有上述各種學生資料,共200個學生
excel中設一按鈕,一個textbox(輸入想印哪一位學生的學號)
按下按鈕後會依textbox的學號去access資料表中撈資料,並合併列印到word中相對應的欄位


看了一些文但還是搞不好,也不懂,只好發問求助
如果進階題太難的話,就請各位前輩幫忙先解答第一題就好
感謝感謝

ps:如果按下按鈕後,合併完直接列印,好像有print的指令
     但如果我有兩台印表機,可以利用指令去指定我這次要用A印表機去印
     或是要指定B印表機去印嗎?      謝謝
作者: linyancheng    時間: 2020-4-1 13:13

本帖最後由 linyancheng 於 2020-4-1 14:24 編輯

回復 1# iceandy6150


在Excel中:

Shell "rundll32.exe url.dll,FileProtocolHandler " & ThisWorkbook.Path & "\○○○○○.doc", 1 '「○○○○○.doc」改成Word檔名。假設Word檔在同一資料夾中。

在Word中:

早期版本是相對路徑,Office 2007以後是絕對路徑。
為避免麻煩,可在完成編輯Word主文件後,將其還原為標準的Word文件,然後在ThisDocument中加入以下代碼:

Private Sub Document_Open()

    On Error Resume Next
   
    With ThisDocument.MailMerge
        .MainDocumentType = wdCatalog '主文件型式設為型錄(目錄),也可設為信封wdEnvelopes、信件wdFormLetters或標籤wdMailingLabels。
        .OpenDataSource Name:=ThisDocument.Path & "\○○○○○.xls" '「○○○○○.xls」改成資料來源檔名。假設來源檔在同一資料夾中。
        
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        
        With .DataSource
            .FirstRecord = wdDefaultFirstRecord
            .LastRecord = wdDefaultLastRecord
        End With
        
        .Execute True
    End With
   
    'ThisDocument.Close wdDoNotSaveChanges

End Sub




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)