Board logo

標題: 請問GBKEE版主,報表檔可以存起,離線列印嗎? [打印本頁]

作者: linshin1999    時間: 2010-12-29 23:52     標題: 請問GBKEE版主,報表檔可以存起,離線列印嗎?

續[善用錄製巨集可以找到很多問題的答案,以自動分頁為例]主題,
For i = 1 To Rng.Rows.Count  '所要印列的一連續的範圍的總列數
      A = IIf(Rng.Rows.Count > i + R, R, Rng.Rows.Count - i + 1)
      .PageSetup.PrintArea = Rng(i, 1).Resize(A, C).Address '設定要列印範圍的位置字串
      i = i + R - 1
      .PrintPreview '印列預覽
Next i

請問這可以存起來成為一個報表檔離線列印嗎?,不然報檔多的時候線上列印如何是好?
作者: Hsieh    時間: 2010-12-30 08:42

看來你是要存成tif檔
到時後再一起列印吧
若是如此將印表機選擇Microsoft Office Document Image Writer
就能存成影像檔儲存
若非如此,是想跳過預覽直接列印
就取消.PrintPreview
直接改為.PrintOut
印表機會直接依序列印
作者: linshin1999    時間: 2010-12-30 09:03

謝謝Hsieh,我會再有一個方向了再努力.
作者: linshin1999    時間: 2010-12-31 23:47

看來你是要存成tif檔
Hsieh版主,我不是要存成tif檔,或者是我對tif檔的認知不足,tif檔是這樣定義的嗎?(Tag(ged) Image File Format),不知道版主的tif檔是指這個嗎?
但是我的意思不是指這個,以前的報表檔可以這樣存檔QB)
open "c:\print\print.txt" for output as #1
     print #1,"--------------------------------------------"
     print #1,"|代碼|執行結果|........................................|"
     print #1,"--------------------------------------------"
     print #1,"|001|24.3567|........................................|"
     print #1,"--------------------------------------------"
     print #1,"--------------------------------------------"
close #1

因為在Windows中的ASCII變了,以前DOS所有的框線都可以以ASCII產生,所以例子中的框線都是實線,很漂亮的報表檔是一行一行被產生出來,並且一行行的存起來,跳頁只要產生一個跳頁符號就可以了(CHR$(12)),VBA是工作表的觀念,其實也有很多好處,例如:可以對單一儲存格作屬性設定,框線製作也很簡單,但是跳頁好像不能隨心所慾,同一頁如果要印製多個清單,以前是先產生許多小表單然後寫一個"Merge"程式,一張就出來了,多麼複雜都可以,經常都是用".txt"檔存起來,然後在c:\打print xxx.txt,那怕有100頁,都被行列表機(Line printer)去一行一行的印出來,是不是很像在講古,但是就是這樣子,我的困擾就是(從DOS 轉到 Windows)如何製作報表?
作者: Hsieh    時間: 2011-1-1 01:32

本帖最後由 Hsieh 於 2011-1-1 01:42 編輯

回復 4# linshin1999


    你當然也可以存成TXT檔
只是Print #1後面接的就是要輸入的字串
所以,就是儲存格內容
也就是說你可使用迴圈
循列取得儲存格內容即可

這裡簡單說一下,VBA跟VB其實是一樣的都是以物件為導向
只是VBA因為已經創建了許多類別供使用
所以你要針對這些類別物件去了解其屬性
你要取得這些物件屬性才能運用到程式中
作者: linshin1999    時間: 2011-1-1 14:28

基本功夫還不夠會再努力,再給一些時間會走得下去的,謝謝Hsieh版主的鼓勵.
作者: linshin1999    時間: 2011-1-3 01:07

Hsieh版主你好,我想我是被困在以前的作業方式中來想Excel,所以跑不出來.
以前所有的程式可以用一個Batch檔去跑,跑完後會完成所有要的報檔,然後再用把選用的報表印出來.
這樣做有好處,我可以在下班前把要執行的程式丟給電腦跑,早上來再列印報表,然後再繼續寫程式,每天都可以重複這樣的動作,但是Excel好像不行它必須線上作業,必須去按XX才會離開,以前跑完了會有人去關機,現在跑完了Excel還在,電腦只好24小時開機,很困擾,所以我會一直問可以產生外部報表嗎?可以譯成可執行檔嗎?

好像Vba 不能產生可執行檔, 目前我認知是這樣的,但是好像可以產生外部報表(如df 或 doc檔)但是還是要透過Word 或 Adobe Reader 才可列印出來,因為線框没辦法用Txt檔儲存,所以Excel無法產生.txt的報表檔.

註:成為TXT檔有好處可以在DOS模式下,下列印指令,可以寫成Batch檔批次列印.
    用Word 或 Adobe Reader 都有同樣的問題,必須按 XX 才能離開,(我們公司靠我一個人玩電腦,没有離開系統就没有人敢關電腦)所以很傷腦筋.

Hsieh版主真不好意思,說了一大堆可能你還不知道我在講什麼.
作者: Hsieh    時間: 2011-1-3 12:11

你可能是想讓excel產生的數據丟給原本dos的程式去印報表
如果是這樣的話你就把excel匯出成為你dos程式能接受的格式

而你曾說過當列印夾紙後就要重新來過
這在windows中應該是不會有此情形
你做完列印動作時
excel所要列印的資料已經佇列完成時
除非你為印表機做取消列印
不然的話只要印表機是開啟狀態
你將所有應用程式關閉一樣會列印
夾紙或暫停列印後
只要重新啟動印表機就能接續下去
作者: linshin1999    時間: 2011-1-3 13:04

Hsieh版主:Excel可以無法丟出Dos可以接受的格式,因為Dos只接受ASCII code,Excel產生的檔案中有許多框線,這是Win 和 Dos的差異,也許是以前的Dos的殘留印象,所以一直停留在Dos模式下去思考問題,再掙扎一陣子會好一點,現在還没去試著從Excel滙出檔案,我會試試看!也許會找到我要的答案.




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