"#"#的页面#在冷冻细胞中

时间:2014-05-14 18:29:56

标签: excel vba excel-vba numbers cell

我正在制作一个电子表格,其中有一些冻结的行作为顶部。我需要其中一个单元格来跟踪页码,另一个单元格用于跟踪页面总数。

我一直在尝试使用Displaying Excel Worksheet Count作为参考,但最好的答案是使用页眉和页脚,但实际上我需要将数字放在我的冻结单元格中。

到目前为止我尝试过:

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是需要当前号码的单元格。

更新: 这是我到目前为止所提出的。

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而不是1,2,3中放置55,......正如我想要的那样。我已经尝试使用在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位于顶部的冻结行中,因此似乎无效。

2 个答案:

答案 0 :(得分:0)

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

  1. 您是否尝试在添加工作表时动态更新这些M4单元格,或者只使用子程序将它们刻录一次?
  2. 你现在有什么问题?
  3. 当你说" page"你的意思是打印的页码,或者底部条带中标签名称(工作表名称)的顺序?

答案 1 :(得分:0)

我认为这是预期的答案......

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