2

是否有公式可以在单个单元格中显示工作簿中的工作表数量?

假设我有 3 个工作表,我想显示用户在每个页面上的页码。

我希望它在第一页的页脚中看起来像这样:

Page 1 of 3

对于第二页:

Page 2 of 3

对于第三页:

Page 3 of 3

我怎样才能做到这一点?

4

3 回答 3

3

您可以在页脚中添加这样的代码

  1. 同时按 ALT 和 F11 转到 Visual Basic 编辑器
  2. 插入模块
  3. 复制并粘贴下面的代码
  4. 按 ALT 和 F11 返回 Excel
  5. 运行代码

此代码将在您选择运行时更新。或者,您可以在每次使用事件打开工作簿时运行代码(这可能是多余的),或者在用户查看打印时捕获,并且只需将页码添加到正在打印的工作表(而不是整个工作簿)

Sub NewHeaders()
    Dim Sht As Worksheet
    For Each Sht In ActiveWorkbook.Worksheets
        Sht.PageSetup .CenterFooter = "&P" & " of " & "&N" & " pages"
    Next Sht
End Sub

[更新:将此修改后的代码放在您希望代码运行的文件的 ThisWorkbook 模块中]

  1. 同时按 ALT 和 F11 转到 Visual Basic 编辑器
  2. 将下面的代码复制并粘贴到“ThisWorkbook”模块中
  3. 按 ALT 和 F11 返回 Excel

    Private Sub Workbook_Open()
     Dim Sht As Worksheet
       For Each Sht In ActiveWorkbook.Worksheets
         Sht.PageSetup .CenterFooter = "&P" & " of " & "&N" & " pages"
        Next Sht
    End Sub
    

见下图 在此处输入图像描述

于 2011-10-06T22:40:17.120 回答
0

它当然可以在 VBA 中轻松完成

Dim sheetCount As Integer
Dim i As Integer

sheetCount= ActiveWorkbook.Worksheets.Count

For i = 1 To sheetCount
    ActiveWorkbook.Worksheets(i).Range("A1").Value = "Page " & i & " of " & sheetCount
Next i
于 2011-10-06T22:37:39.780 回答
0

最好的选择是电源外壳。

  1. 打开电源外壳 ISE

    $xl = 新对象-COM "Excel.Application" $xl.Visible = $true

    给出正确的道路

    $wb = $xl.Workbooks.Open("D:\123.xls") $n = $wb.sheets.count

    回声 $n $wb.Close() $xl.Quit()

检查输出,完成:) :)

于 2017-10-20T03:51:13.753 回答