我正在制作一个电子表格,上面有几个冻结的行。我需要一个单元格来跟踪页码,另一个单元格来跟踪总页数。
我一直试图使用显示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在顶部的冻结行。
这应该是可行的,但不清楚你在要求什么。
- 当您添加工作表时,您是否试图让这些M4单元格在飞行中更新,或者只是将它们与子程序一起燃烧一次?
- 你现在有什么问题?
- 当您说"页"时,您是指打印的页码,还是底部条形中的选项卡名称(工作表名称)的顺序?
我认为这是预期的答案…
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