"Page # of #"冷冻细胞



我正在制作一个电子表格,上面有几个冻结的行。我需要一个单元格来跟踪页码,另一个单元格来跟踪总页数。

我一直试图使用显示Excel工作表计数作为参考,但最好的答案有使用页眉和页脚,但我实际上需要的数字是在我的冻结单元格。

我已经试过了:

Sub PageNum()
    Dim sheetCount As Integer
    Dim i As Integer
    sheetCount= ActiveWorkbook.Worksheets.Count
    For i = 1 To sheetCount ActiveWorkbook.Worksheets(i).Range("M4").Value = "Page " & i & " of " & sheetCount 
    Next i 
End Sub

M4是需要当前号码的cell。

更新:这是我目前想到的。

Sub PageNums()
   Dim WS_Count As Integer
   Dim I As Integer
      WS_Count = ActiveSheet.PageSetup.Pages.Count
      For I = 1 To WS_Count
         ActiveWorkbook.Worksheets(1).Range("M4").Value = I
         Cells(4, 14).Value = WS_Count
      Next I
End Sub

指出:-我的文档是一个工作表超过1100行到目前为止。前13行被冻结,以便它们在打印时出现在每页上。M4和N4在那些冻结线中;M4应该显示,打印时,页码(如果我有一个页眉/页脚的页码,或相同的数字看到当文档是在分页预览)和N4应该显示在文档中的总页数(目前55页)。

-上面的最新代码正确地计算了文档中的页数,并在N4中显示,但它也在M4中显示55,而不是1,2,3,…如我所愿。我试过使用在http://answers.microsoft.com/en-us/office/forum/office_2007-excel/excel-page-numbering-in-document-not-headers-or/ebfb5b62-b624-4503-a142-6dea1ba813f9上发布的解决方案,但它似乎不起作用,因为M4在顶部的冻结行。

这应该是可行的,但不清楚你在要求什么。

  1. 当您添加工作表时,您是否试图让这些M4单元格在飞行中更新,或者只是将它们与子程序一起燃烧一次?
  2. 你现在有什么问题?
  3. 当您说"页"时,您是指打印的页码,还是底部条形中的选项卡名称(工作表名称)的顺序?

我认为这是预期的答案…

Sub pagenumber()
    Dim VPCount As Integer
    Dim HPCount As Integer
    Dim VPBreak As VPageBreak
    Dim HPBreak As HPageBreak
    Dim NumPage As Integer
    HPCount = 1
    VPCount = 1
    If ActiveSheet.PageSetup.Order = xlDownThenOver Then
        HPCount = ActiveSheet.HPageBreaks.Count + 1
    Else
        VPCount = ActiveSheet.VPageBreaks.Count + 1
    End If
    xNumPage = 1
    For Each VPBreak In ActiveSheet.VPageBreaks
        If VPBreak.Location.Column > ActiveCell.Column Then Exit For
        NumPage = NumPage + HPCount
    Next
    For Each HPBreak In ActiveSheet.HPageBreaks
        If HPBreak.Location.Row > ActiveCell.Row Then Exit For
        NumPage = NumPage + VPCount
    Next
    Activesheet.Cells(4, 14) = "Page " & NumPage & " of " & HPCount

End Sub

最新更新