Board logo

標題: 如何用vba 列印在不同大小紙張上? [打印本頁]

作者: eigen    時間: 2013-12-30 13:55     標題: 如何用vba 列印在不同大小紙張上?

如何用vba 列印在不同大小紙張上?

我要將一大堆清單打印到,小張的連續報表紙上,然後撕開歸檔。

https://dl.dropboxusercontent.com/u/12575824/%E5%B0%8F%E8%A8%88%E5%88%86%E9%A0%81.xls

如上檔,這是一連串的清單,我目前是用 12inch *9.5inch 中三刀的連續報表紙 ,也就是一張 3*9.5的紙來打印



清單少沒什麼問題,清單一多,例如小計分頁的 10 11 12 13 頁,打印出來就很不好,我希望

例如:

清單超過 12 項,就將紙張大小,調整成 6*9.6,再進行列印,讓清單打印在兩張連續的報表紙上

清單超過 26 項,就將紙張大小,調整成 9*9.6,再進行列印,讓清單打印在兩張連續的報表紙上

清單超過 40 項,就將紙張大小,調整成 12*9.6,再進行列印,讓清單打印在兩張連續的報表紙上

以此類推(除第一頁是12,之後都是 3inch 多 14行)


目前我能想到的做法就是新增多種sheet (3inch 6inch 9inch 12inch 15inch.)

每種sheet 給予不同大小的版面尺寸。

然後在列印的時候跟據清單的多少,選擇複製到不同的sheet ,再進行打印

※以上這只是想法,但是真的實作,我完全使不上力了,請高手幫幫我,謝謝~~

謝謝~~
作者: eigen    時間: 2013-12-30 14:28

回復 1# eigen
請如,我該如何寫VBA程式?pseudo code 這個我就會

string id=""
cnt=1
start=2
for i= 2~2000
        a="" exit for loop

        if id==a{
                cnt++
        }else{
        //抓到尾
                if cnt <=12
                        set page=3inch
                else if cnt < 26
                        set page=6inch
                else if cnt < 40
                        set page=9inch
                else if cnt < 54
                        set page=12inch
                else if cnt < 68
                        set page=15inch
                else if cnt < 82
                        set page=18inch
                else
               
                clear page 的內容為 ""
               
                copy start ~start+cnt 的資料 to page
       
                Print page

        '重設變數
                i+1
                id=a
                start =start+cnt+1
        }       
       
}'for loop




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