我正在制作一个电子表格,其中有一些冻结的行作为顶部。我需要其中一个单元格来跟踪页码,另一个单元格用于跟踪页面总数。
我一直在尝试使用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位于顶部的冻结行中,因此似乎无效。
答案 0 :(得分:0)
这应该是可行的,但不清楚你要求的是什么。
答案 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