返回列表 上一主題 發帖

[發問] 請問如何把無資料的多餘頁面設定一按鈕刪除

本帖最後由 GBKEE 於 2016-10-8 15:17 編輯

回復 4# simplehope
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Sh As Worksheet, xCol As Integer, Rng As Range, i As Integer
  4.     For Each Sh In ActiveWorkbook.Sheets
  5.          If Sh.PageSetup.PrintArea <> "" Then
  6.             Set Rng = Nothing
  7.             With Sh
  8.                 xCol = .VPageBreaks(1).Location.Column
  9.                 For i = 1 To .HPageBreaks.Count
  10.                     If .HPageBreaks(i).Location.Range("F16") = "" Then Set Rng = .HPageBreaks(i).Location: Exit For
  11.                 Next
  12.                 If Not Rng Is Nothing Then
  13.                     .PageSetup.PrintArea = .Range("a1", .Cells(Rng.Offset(-1).Row, xCol)).Address
  14.                     .Range("a1", .Cells(Rng.Offset(-1).Row, xCol)).Select
  15.                     .Range(Rng, .Range("A" & .Cells.SpecialCells(xlCellTypeLastCell).Row)).Resize(, xCol).Delete xlUp
  16.                     'AJ欄原本公式=IF(AT14="","",$AT$74) , 改公式 =總頁數
  17.                 End If
  18.             End With
  19.             Sh.Names.Add Name:="總頁數", RefersToR1C1:=Sh.HPageBreaks.Count + 1
  20.         End If
  21.     Next
  22. End Sub
複製代碼
PS:2016/10/08 修正
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 3# simplehope

熬到半夜三點,總算試出來了,新增頁面後,還是會有頁數亂掉的問題。
慢慢研究,也謝謝有進來看的大家。

TOP

抱歉大家,被我矇到,用最笨的方法試出了!
再加問,如果執行後有兩頁,想另存成pdf,如何擷取工作表名稱為pdf 的名稱?
這次我真的不會了....

TOP

下午突然想到以下寫法:
===========
Sub 刪除空白頁面()

For i = 3128 To 112 Step -52

    If Range("AH" & i) = "" Then
    Range("AH" & i).Offset(-7, 0).Rows("1:52").EntireRow.Select
    Selection.Delete Shift:=xlUp

    End If

Next

End Sub
====================
但執行後,總頁數會亂掉,如圖:

總頁數61頁,但實際只有二頁


連接頁數的灰色區域

應該是cell AT74要改公式,但想不出來可以用什麼函數。
只好再請大俠們幫幫忙~~

TOP

        靜思自在 : 屋寬不如心寬。
返回列表 上一主題