Отображение числа листов Excel - PullRequest
2 голосов
/ 07 октября 2011

Существует ли формула для отображения количества рабочих листов в рабочей книге в одной ячейке?

Допустим, у меня есть 3 рабочих листа, и я хочу отобразить номер страницы, на которой находится пользователь, для каждой страницы.

Я хочу, чтобы это выглядело так в нижнем колонтитуле для первой страницы:

Page 1 of 3

Для второй страницы:

Page 2 of 3

И для третьей страницы:

Page 3 of 3

Как я могу это сделать?

Ответы [ 3 ]

3 голосов
/ 07 октября 2011

Вы можете добавить в свои нижние колонтитулы код, подобный этому

  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
    

см. Рисунок ниже enter image description here

0 голосов
/ 20 октября 2017

Лучший вариант - это Power Shell.

  1. Открыть Power Shell ISE

    $ xl = New-Object -COM "Excel.Application" $ xl.Visible = $true

    указать правильный путь

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

    Эхо $ n $ wb.Close () $ xl.Quit ()

проверить вывод, Готово:):)

0 голосов
/ 07 октября 2011

Это, безусловно, легко сделать в 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
...