返回列表 上一主題 發帖

[發問] 可否用VBA來控制列印範圍?

[發問] 可否用VBA來控制列印範圍?

VIP.rar (12.95 KB)

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

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

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

感謝!

回復 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
複製代碼
學海無涯_不恥下問

TOP

Hsieh超版
厲害喔
解決難題了
感激不盡
謝謝

TOP

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



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

TOP

回復 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
複製代碼
學海無涯_不恥下問

TOP

感謝超版
受教了
謝謝!

TOP

回復 2# Hsieh


    Hsieh你好
          假設最後一頁只有3行資料,但因版面問題,想讓最後一頁列印行數跟前一頁一樣,可行嗎?

TOP

回復 5# Hsieh


    超級版主 您好!

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

TOP

        靜思自在 : 人事的艱難與琢磨,就是一種考驗。
返回列表 上一主題