Excel列印控制

2021-04-19 10:24:05 字數 2497 閱讀 1893

"列印的時候像word一樣自動分欄,可以用新增輔助表和使用indirect()的辦法實現:

假如你的原表是sheet1,新建乙個工作表sheet2,把表頭設定成需要的分欄形式(注意表頭行數要和原表一致,保證第一行資料和原表的行號相同,只是多了幾個列),現在架設你的資料從第2行開始,並且每頁列印5行資料(不含表頭),每頁列印3欄。請在sheet2的a2單元格(第一行資料)輸入如下公式即可返回sheet1工作表a2的資料,:

=indirect(""sheet1!a""&row()+rounddown((row()-2)/5,0)*10)

在sheet2的b2單元格中輸入如下公式可返回sheet1中b1的資料

=indirect(""sheet1!b""&row()+rounddown((row()-2)/5,0)*10)

說明:indirect()函式返回指定單元格內容。引數「sheet1」指要引用的工作表的名字,「a」「b」表示要引用的列號,「-2」表示第一行資料所在行號,「5」在這裡表示每頁的列印資料行數(不含表頭),

「10」表示下頁第乙個數比本頁第一列最後乙個行數的相差數,在這裡每頁列印5行,每頁列印3列,所以這個數就等於3*5-5=10。

好了,a1、b1單元格(其實就是第一欄的資料)好了,現在弄第二欄的資料,即c、d列資料。在c1單元格輸入:

=indirect(""sheet1!a""&row()+rounddown((row()-2)/5,0)*10+5)

和a1相比,只是在後面加了個5,因為這是第二欄,比第一欄多了5個數。

在d1中輸入:=indirect(""sheet1!b""&row()+rounddown((row()-2)/5,0)*10+5)

和b1相比,也只是加了個5,和c1相比,只是取了第b列資料。

同理,很容易寫出e1和f1的公式:

=indirect(""sheet1!a""&row()+rounddown((row()-2)/5,0)*10+10)

=indirect(""sheet1!b""&row()+rounddown((row()-2)/5,0)*10+10)

最後一步,請選中a1到f1單元格,用填充柄向下複製即可。" 

另外,兩個巨集:

sub printdoublesided()

dim totalpages as long

dim pg as long

dim oddoreven as integer

on error goto enditt

totalpages = executeexcel4macro("get.document(50)")

oddoreven = inputbox("enter 1 for odd, 2 for even")

for pg = oddoreven to totalpages step 2

activewindow.selectedsheets.printout from:=pg, to:=pg

next pg

enditt:

end sub

sub 手動雙面列印()

dim suiping as integer

dim cuizi as integer

dim zys as integer

dim mybottonnum as integer

dim myprompt as string

myprompt = "請將出紙器中已列印好一面的紙取出並將其放回到送紙器中,然後按下""確定"",繼續列印"

'activesheet.usedrange.cells(activesheet.usedrange.cells.count).select

'suiping = activesheet.hpagebreaks.count        '統計當前工作表水平分頁符

'cuizi = activesheet.vpagebreaks.count          '統計當前工作表垂直分頁符

'zys = (suiping + 1) * (cuizi + 1)              '統計總頁數

zys = executeexcel4macro("get.document(50)")    '發現上面統計的總頁數不正確,改用此處

msgbox "總頁數為" & zys                         '顯示總頁數

for i = 1 to zys step 2                         '列印奇數頁

activesheet.printout from:=i, to:=i

next i

mybottonnum = msgbox(myprompt, vbyesno)         '提示取出紙張,繼續列印

if mybottonnum = vbyes then

for j = 2 to zys step 2                     '列印偶數頁

activesheet.printout from:=j, to:=j

next j

end if

end sub

C 控制Excel的列印格式

工作薄所在的位置 第乙個工作薄 excel.worksheet xlsheet excel.worksheet workbook.worksheets.get item 1 上邊距 double top 0 左邊距 double left 0 右邊距 double right 0 下邊距 doubl...

js控制excel列印完美解決方案

js控制excel列印完美解決方案 好,那麼下一步就是如何實現列印了,這裡我有非常奪得報表,而且一些非常複雜,如學生成績單,需要按照學年 學期計算學分績點,列印 學位授予情況,學籍處理情況,四六級成績,實習,輔修成績,實踐等,那麼我如何把這些資訊完整的列印到客戶端就是非常麻煩的了,所有我用excel...

C 設定Excel列印選項及列印excel文件

c 設定excel列印選項及列印excel文件 列印excel文件是乙個很常見的操作,但有時候我們會碰到各種不同的列印需求,例如只列印乙個excel工作表的其中一部分,或列印時每頁都有表頭,或把工作表中超出1頁所有內容列印到1頁上等等,這時我們需要對excel的列印選項進行設定。這篇文章主要是分享如...