跳到主要內容

EXCEL 批次列印設定 巨集撰寫教學

最近在幫一個客戶使用word 合併列印,雖然POS比較好用,不過客戶需要應急,但發現word合併列印,會因為印表機的驅動,導致怎麼印都會是直式,無法正常進入框架內。

詢問原廠與印表機原廠,都沒有辦法解決,互推責任(老樣子),因此只好另尋辦法,使用EXCEL做列印。

這次主要是幫台北某間幼稚園製作,因此開啟EXCEL先做好列印的套表頁再來製作資料庫頁面。





然後我們必須做好巨集,讓資料庫的資料可以自動的複製到列印套表那邊的正確格子內列印。

首先把巨集的選項打開。


選取錄製巨集,建立一個巨集,並且設定他的執行快捷鍵,這裡我設定為Ctrl+b 他會把我圈選的資料置到列印套表做列印。



建立好後,點選巨集,選擇剛剛建立的巨集,再點選編輯,進入編輯視窗。


下圖就是我編輯的編輯視窗,當然裡面的巨集程式碼,也是參考其他大大然後變更而成的。

做好後記得存檔,並將整個資料存成*.XLSM

以下是我參考的巨集資料,也希望可以給大家參考。


--------------------------程式碼開始--------------------------
Sub 巨集1()

'
' 巨集1 巨集
'
' 快速鍵: Ctrl+b
'
    Application.Goto Reference:="巨集1"
    '**********************************************
    '在Sheets("輸入")中滑鼠選擇要印列 ,執行此程式
    '**********************************************
    Dim E As Range
    Sheets("資料庫").Activate
    For Each E In Selection.EntireRow
        If E.Row > 1 And E.Range("B1") <> 0 And Application.CountA(E.Range("A1:G1")) = 7 Then
            'E.Row > 1                                      ->第2列以後的資料
            'E.Range("B1") <> 0                             ->作廢
            'Application.CountA(E.Range("A1:G1")) = 7       ->資料要齊全;這指的是要有7格資料才會列印
            With Sheets("列印套表")
                .Range("A1:G10").Name = "Print_Area"         '印列範圍(先調整印列紙張的大小)
                .[C3] = E.Range("A1")                        '填上 :支票的資料
                .[M3] = E.Range("A1")
                .[C5] = E.Range("B1")
                .[C6] = E.Range("C1")
                .[C7] = E.Range("D1")
                .[C8] = E.Range("E1")
                .[C9] = E.Range("F1")
                .[C10] = E.Range("G1")
                .[C11] = E.Range("H1")
                .[C12] = E.Range("I1")
                .[C13] = E.Range("J1")
                .[C14] = E.Range("K1")
                .[C15] = E.Range("L1")
                .[D5] = E.Range("M1")
                .[M5] = E.Range("B1")
                .[M6] = E.Range("C1")
                .[M7] = E.Range("D1")
                .[M8] = E.Range("E1")
                .[M9] = E.Range("F1")
                .[M10] = E.Range("G1")
                .[M11] = E.Range("H1")
                .[M12] = E.Range("I1")
                .[M13] = E.Range("J1")
                .[M14] = E.Range("K1")
                .[M15] = E.Range("L1")
                .PrintOut                                               '印列
            End With
        End If
   Next
End Sub
----------------------------程式碼結束---------------------------

關於為什麼word合併列印會變成這種奇怪的情形,我在猜應該是現在印表機比較聰明,會協助幫客戶調整紙張,但聰明反被聰明誤,造成這種反效果,我懷疑是下面的選項搞鬼,但我沒時間可以繼續測試,因此才改用EXCEL套表的方式。

留言

這個網誌中的熱門文章

google chrome 無法移除 新增移除找不到

最近因為工作的關係,常常跑來跑去,忽然告知廠區要升級google chrome,好吧!升級吧! 但到場遇到了一件事情(其實是同事遇到) 新增移除裡面找不到 google chrome 移除的選項,如下沒有紅色圈起來的地方。