"一次" 列印/預覽 EXCEL 所有 SHEETS |
答題得分者是:carstyc
|
水晶人
一般會員 發表:3 回覆:6 積分:1 註冊:2007-08-08 發送簡訊給我 |
|
carstyc
資深會員 發表:16 回覆:254 積分:329 註冊:2003-07-18 發送簡訊給我 |
要是 Excel 本身都沒辦法做到的話,要靠VBA應該是辦不到吧...
===================引 用 水晶人 文 章=================== 我知道ExcelApp.ActiveSheet.PrintPreview 及 ExcelApp.ActiveSheet.PrintOut 可以預覽及列印 "當前"active 的sheet 但如果我想列印/預覽 整個excel 文件(有多張sheet),應如何設置, 直接開excel 的列印功能,在列印佈容中有一個選項是"整本活頁簿" 那如何用delphi 控制列印前選擇該選項呢?? 先行多謝解答 |
AndrewK
高階會員 發表:6 回覆:151 積分:161 註冊:2006-10-09 發送簡訊給我 |
使用環境:
office 2007 delphi 7 利用 ExcelApp.ActiveWorkbook.PrintOut --> Pass ExcelApp.ActiveWorkbook.PrintPreview 程式無法回應 這個方向您可以嘗試看看
------
Just Do It ------------------------- 其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。
編輯記錄
AndrewK 重新編輯於 2009-06-10 00:13:32, 註解 無‧
|
carstyc
資深會員 發表:16 回覆:254 積分:329 註冊:2003-07-18 發送簡訊給我 |
抱歉,原以為 Excel 本身沒辦法做到全部Sheet 的列印及預覽,但後來發現是可以的
用 巨集錄製得到下列結果 '列印全部的 Sheet ActiveWorkbook.PrintOut Copies:=1, Collate:=True '預覽全部的 Sheet ActiveWorkbook.PrintOut Copies:=1, Collate:=True, Preview:=True ===================引 用 水晶人 文 章=================== 我知道ExcelApp.ActiveSheet.PrintPreview 及 ExcelApp.ActiveSheet.PrintOut 可以預覽及列印 "當前"active 的sheet 但如果我想列印/預覽 整個excel 文件(有多張sheet),應如何設置, 直接開excel 的列印功能,在列印佈容中有一個選項是"整本活頁簿" 那如何用delphi 控制列印前選擇該選項呢?? 先行多謝解答 |
水晶人
一般會員 發表:3 回覆:6 積分:1 註冊:2007-08-08 發送簡訊給我 |
由於程式會有多個用戶使用,
如果用巨集方式, 是否要給每個用戶都要匯入 編寫好的巨集. 我想delphi 是否可能直接用程式控制 example : App.ActiveWorkBook.Collate := True; 就可以列印全部呢?? ===================引 用 carstyc 文 章=================== 抱歉,原以為 Excel 本身沒辦法做到全部Sheet 的列印及預覽,但後來發現是可以的 用 巨集錄製得到下列結果 '列印全部的 Sheet ActiveWorkbook.PrintOut Copies:=1, Collate:=True '預覽全部的 Sheet ActiveWorkbook.PrintOut Copies:=1, Collate:=True, Preview:=True ===================引 用 水晶人 文 章=================== 我知道ExcelApp.ActiveSheet.PrintPreview 及 ExcelApp.ActiveSheet.PrintOut 可以預覽及列印 "當前"active 的sheet 但如果我想列印/預覽 整個excel 文件(有多張sheet),應如何設置, 直接開excel 的列印功能,在列印佈容中有一個選項是"整本活頁簿" 那如何用delphi 控制列印前選擇該選項呢?? 先行多謝解答 |
carstyc
資深會員 發表:16 回覆:254 積分:329 註冊:2003-07-18 發送簡訊給我 |
當然是直接用 ExcelApp.ActiveSheet.PrintOut 來達成啊
我只是跟你講 PrintOut 的參數中,只要將 Copies:=1, Collate:=True, Preview:=True ,其餘全部用EmptyPara ,就能達到預覽全部的功能。 可是 PrintOut 是一個多型的函式,你要找一下那一個函式中可同時輸入 Copies , Collate , Preview 這三個參數,就選用那個函式來做,其餘都帶 EmptyPara 。 我手上目前沒有 Delphi 可以用,你先試看看吧。 ===================引 用 水晶人 文 章=================== 由於程式會有多個用戶使用, 如果用巨集方式, 是否要給每個用戶都要匯入 編寫好的巨集. 我想delphi 是否可能直接用程式控制 example : App.ActiveWorkBook.Collate := True; 就可以列印全部呢?? ===================引 用 carstyc 文 章=================== 抱歉,原以為 Excel 本身沒辦法做到全部Sheet 的列印及預覽,但後來發現是可以的 用 巨集錄製得到下列結果 '列印全部的 Sheet ActiveWorkbook.PrintOut Copies:=1, Collate:=True '預覽全部的 Sheet ActiveWorkbook.PrintOut Copies:=1, Collate:=True, Preview:=True ===================引 用 水晶人 文 章=================== 我知道ExcelApp.ActiveSheet.PrintPreview 及 ExcelApp.ActiveSheet.PrintOut 可以預覽及列印 "當前"active 的sheet 但如果我想列印/預覽 整個excel 文件(有多張sheet),應如何設置, 直接開excel 的列印功能,在列印佈容中有一個選項是"整本活頁簿" 那如何用delphi 控制列印前選擇該選項呢?? 先行多謝解答 |
fireflybug
一般會員 發表:18 回覆:36 積分:15 註冊:2008-07-17 發送簡訊給我 |
我無意間試出來的,建立一個Button,與一個PrintFileDOC(tmpFilename: string)的程序。
程式Source 然後重點在於我給了兩個變數 var ExcelApp.Workbooks.Open(tmpFilename); <==正常開啟檔案 Excelall := ExcelApp.Workbooks.Open(tmpFilename);//可列印全部SHEET <==把開啟檔案的狀態給Excelall 最後再使用 ExcelApp.quit來關,而不是 Excelall.quit。 列印作用中的sheet則用 ==> ExcelApp.ActiveSheet.PrintOut 即可 要預覽可帶參數 ==> Excelall.printout(Copies:=1, Collate:=True, Preview:=True) 即可預覽 Excelall := ExcelApp.Workbooks.Open(tmpFilename);//可列印全部SHEET //ExcelApp.quit; //ExcelApp.Select; //重新設定最大邊界,避免word跳出訊息 PageSetup := ExcelApp.ActiveSheet.PageSetup; PageSetup.LeftMargin:='0.5'; // 邊際位置-左 PageSetup.RightMargin:='0.5'; // 邊際位置-右 PageSetup.TopMargin:= '0.5'; // 邊際位置-上 PageSetup.BottomMargin:= '0.5'; // 邊際位置-下 ExcelApp.Save; // 存檔,避免關閉Word又跳出訊息 try Excelall.PrintOut; //列印全部Sheet ExcelApp.ActiveSheet.PrintOut(Copies:=1, Collate:=True, Preview:=True);//作用中的sheet帶參數,此為預覽列印 //sleep(5000); finally ExcelApp.quit; ExcelApp:=Unassigned; //釋放VARIANT變量 end; except on xErr: Exception do begin Screen.Cursor := crDefault; MessageDlg('您的電腦裡未安裝Microsoft Word。' #13#10 xErr.Message, mtInformation, [mbOk], 0); ExcelApp.Quit; //ExcelApp:=Unassigned; //釋放VARIANT變量 Exit; end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin if OpenDialog1.Execute then begin PrintFileDOC(OpenDialog1.FileName); MessageDlg(OpenDialog1.FileName ' 列印完成', mtInformation, [mbOk, mbNo], 0); end else MessageDlg('取消列印', mtInformation, [mbOk, mbNo], 0); end; [/code] ===================引 用 水晶人 文 章=================== 我知道ExcelApp.ActiveSheet.PrintPreview 及 ExcelApp.ActiveSheet.PrintOut 可以預覽及列印 "當前"active 的sheet 但如果我想列印/預覽 整個excel 文件(有多張sheet),應如何設置, 直接開excel 的列印功能,在列印佈容中有一個選項是"整本活頁簿" 那如何用delphi 控制列印前選擇該選項呢?? 先行多謝解答
------
今天的事,留到後天再說.... |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |