Board logo

標題: [發問] 可否用VBA來控制列印範圍? [打印本頁]

作者: bvge    時間: 2011-2-14 20:25     標題: 可否用VBA來控制列印範圍?

[attach]4729[/attach]

如題
工作表格式固定這樣子不變
資料增減都只在有顏色的範圍內變化 (列會增減,行不變)
最少約10筆,最多約300筆

問題
1. 因為資料多少不一定每次都會多印出1~3張空白格子紙張--->浪費紙
2. 如果先設定列印範圍再列印---->麻煩又難控制

構想
1. 用VBA控制,列印出有資料的範圍,沒有資料的格子不列印
2.

感謝!
作者: Hsieh    時間: 2011-2-14 21:35

回復 1# bvge
表格內容是由公式求得
所以要用迴圈找出資料尾
  1. Sub nn()
  2. r = [C65536].End(xlUp).Row
  3. Do Until Cells(r, 3) <> ""
  4. r = r - 1
  5. Loop
  6. ActiveSheet.PageSetup.PrintArea = "A1:AB" & r
  7. End Sub
複製代碼

作者: bvge    時間: 2011-2-14 22:13

Hsieh超版
厲害喔
解決難題了
感激不盡
謝謝
作者: bvge    時間: 2011-2-15 05:29

回復  bvge
表格內容是由公式求得
所以要用迴圈找出資料尾
Hsieh 發表於 2011-2-14 21:35



因為沒學過VBA
想請問Hsieh超版
這一串試了很好用,但是最後還要去按一下"列印"按鈕才會從印表機出來
能否再加入幾個字讓它能自動從印表機跑出來
等於是設定列印範圍 + 列印一次完成 (我好懶惰)
謝謝!
作者: Hsieh    時間: 2011-2-15 08:25

回復 4# bvge
等於是設定列印範圍 + 列印一次完成 (我好懶惰)
解決懶惰方法:
一、辭職回家當少爺
二、加強自我職場競爭力,提升自己的能力


利用事件驅動程序
  1. Private Sub Workbook_BeforePrint(Cancel As Boolean)
  2. With ActiveSheet
  3. r = .[C65536].End(xlUp).Row
  4. Do Until .Cells(r, 3) <> ""
  5. r = r - 1
  6. Loop
  7. .PageSetup.PrintArea = "A1:AB" & r
  8. End With
  9. End Sub
複製代碼
[attach]4732[/attach]
作者: bvge    時間: 2011-2-15 21:10

感謝超版
受教了
謝謝!
作者: 宇媽    時間: 2011-4-27 17:38

回復 2# Hsieh


    Hsieh你好
          假設最後一頁只有3行資料,但因版面問題,想讓最後一頁列印行數跟前一頁一樣,可行嗎?
作者: yc1031    時間: 2012-7-25 13:45

回復 5# Hsieh


    超級版主 您好!

     在這裡函數裡, 我可以加入要使用哪台列表機列印嗎?




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