Здравствуйте. Можно ли найти номер страницы на листе эксель. Проще говоря составить содержание по разделам. Оглавление не подходит т.к. там построено на поиске листов. Пытался через гиперссылку не получилось. Тег
Код
&[Страница]
полько для колонтитула. Для наглядности сделал файл, в нём 5 страниц. На второй странице содержание.
Здравствуйте. Можно ли найти номер страницы на листе эксель. Проще говоря составить содержание по разделам. Оглавление не подходит т.к. там построено на поиске листов. Пытался через гиперссылку не получилось. Тег
Код
&[Страница]
полько для колонтитула. Для наглядности сделал файл, в нём 5 страниц. На второй странице содержание.AB0885
Nic70y, отличное решение, если фиксированно по 50 строк на странице. У меня же на каждой странице количество строк разное (извините, не указал сразу) и может варьироваться от 1 до 50.
Nic70y, отличное решение, если фиксированно по 50 строк на странице. У меня же на каждой странице количество строк разное (извините, не указал сразу) и может варьироваться от 1 до 50.AB0885
Sub u_700() Application.ScreenUpdating = False u = Range("a93").End(xlUp).Row For Each w In Range("a53:a" & u) f = Application.Match(w, Range("a94:a9999"), 0) + 94 b = 0 For Each a In ActiveSheet.HPageBreaks If a.Extent = xlPageBreakFull Then b = b + 1 On Error Resume Next x = ActiveSheet.HPageBreaks(b).Location.Row If x > f Then Exit For End If End If Next Worksheets("Лист1").Hyperlinks.Add Anchor:=Range("h" & w.Row), Address:="", _ SubAddress:="Лист1!A" & f, TextToDisplay:="" & b Next Application.ScreenUpdating = True End Sub
[/vba]
почти [vba]
Код
Sub u_700() Application.ScreenUpdating = False u = Range("a93").End(xlUp).Row For Each w In Range("a53:a" & u) f = Application.Match(w, Range("a94:a9999"), 0) + 94 b = 0 For Each a In ActiveSheet.HPageBreaks If a.Extent = xlPageBreakFull Then b = b + 1 On Error Resume Next x = ActiveSheet.HPageBreaks(b).Location.Row If x > f Then Exit For End If End If Next Worksheets("Лист1").Hyperlinks.Add Anchor:=Range("h" & w.Row), Address:="", _ SubAddress:="Лист1!A" & f, TextToDisplay:="" & b Next Application.ScreenUpdating = True End Sub
Nic70y, здравствуйте. Прошу прощения за столь длинный перерыв (обстоятельства). Ругается на эту строчку [vba]
Код
For Each a In ActiveSheet.HPageBreaks
[/vba] ошибка runtime error 9 subscript out of range.
Устранил путём добавления ещё разделов, но стало последний раздел неправильно показывать (предыдущий номер страницы). Так что "устранил", это громко сказано.
Nic70y, здравствуйте. Прошу прощения за столь длинный перерыв (обстоятельства). Ругается на эту строчку [vba]
Код
For Each a In ActiveSheet.HPageBreaks
[/vba] ошибка runtime error 9 subscript out of range.
Устранил путём добавления ещё разделов, но стало последний раздел неправильно показывать (предыдущий номер страницы). Так что "устранил", это громко сказано.AB0885
Sub u_700() Application.ScreenUpdating = False u = Range("a93").End(xlUp).Row Range("h53:i" & u).ClearContents y = 1 For Each a In ActiveSheet.HPageBreaks If a.Extent = xlPageBreakFull Then b = b + 1 x = ActiveSheet.HPageBreaks(b).Location.Row y = y & "," & x End If Next For Each w In Range("a53:a" & u) f = Application.Match(w, Range("a94:a9999"), 0) + 93 g = Evaluate("MATCH(" & f & ",{" & y & "},1)") Worksheets("Лист1").Hyperlinks.Add Anchor:=Range("h" & w.Row), Address:="", _ SubAddress:="Лист1!A" & f, TextToDisplay:="" & g Next Application.ScreenUpdating = True End Sub
[/vba]
[vba]
Код
Sub u_700() Application.ScreenUpdating = False u = Range("a93").End(xlUp).Row Range("h53:i" & u).ClearContents y = 1 For Each a In ActiveSheet.HPageBreaks If a.Extent = xlPageBreakFull Then b = b + 1 x = ActiveSheet.HPageBreaks(b).Location.Row y = y & "," & x End If Next For Each w In Range("a53:a" & u) f = Application.Match(w, Range("a94:a9999"), 0) + 93 g = Evaluate("MATCH(" & f & ",{" & y & "},1)") Worksheets("Лист1").Hyperlinks.Add Anchor:=Range("h" & w.Row), Address:="", _ SubAddress:="Лист1!A" & f, TextToDisplay:="" & g Next Application.ScreenUpdating = True End Sub
Nic70y, в файле примере отлично работает, но как только оформляю в рабочий документ получаю ошибку 1004 и надпись "мы не можем сделать это в объединённой ячейке". Ругается на эту строку [vba]
Код
Range("h53:i" & u).ClearContents
[/vba]. Если у меня ширина для ссылки страницы от AC до AF у меня должен быть код [vba]
Код
Range("ac53:i" & u).ClearContents
[/vba] ? Прописываю так и у меня ошибка.
Nic70y, в файле примере отлично работает, но как только оформляю в рабочий документ получаю ошибку 1004 и надпись "мы не можем сделать это в объединённой ячейке". Ругается на эту строку [vba]
Код
Range("h53:i" & u).ClearContents
[/vba]. Если у меня ширина для ссылки страницы от AC до AF у меня должен быть код [vba]