|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.12.2021, 15:14 | #1 |
Новичок
Джуниор
Регистрация: 23.12.2021
Сообщений: 4
|
Формула для скрытия строк
Здравствуйте уважаемые программисты. Помогите , пожалуйста переделать VBA макрос, который подходит для EXCEL в аналогичный макрос для LibreOffice Calc. Макрос скрывает строки , если в ячейках столбца "H" нулевые значения. Макрос такой:
Sub Макрос1() Dim i As Long '1. Двигаемся по строкам с 3 по 89. For i = 3 To 89 ' Если в ячейке пусто или ноль. If (Cells(i, "H").Value = "") Or (Cells(i, "H").Value = 0) Then ' Скрытие строки. Rows(i).Hidden = True ' Если в ячейке не пусто и не ноль. Else ' Отображение строки. Rows(i).Hidden = False End If Next i Заранее благодарен. |
23.12.2021, 15:23 | #2 |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
Лет 5 не писал на sbasic, но в общих фразах, макрос такой
Код:
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. |
23.12.2021, 16:03 | #3 |
Новичок
Джуниор
Регистрация: 23.12.2021
Сообщений: 4
|
Благодарю. Не думал, что такой сложный макрос. Он "не ругается" при компеляции, но ничего не делает. Не вижу результата удаления строк, где в столбце "H" нулевые значения.
|
23.12.2021, 16:18 | #4 |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
проверялся на листе "2_нед" Код:
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. Последний раз редактировалось Aleksandr H.; 23.12.2021 в 23:46. |
25.12.2021, 16:56 | #5 |
Новичок
Джуниор
Регистрация: 23.12.2021
Сообщений: 4
|
Благодарю за помощь, но и этот макрос не заработал. Вот некоторые товарищи подсказали такой макрос:
Sub Main Dim Doc As Object 'Переменная для документа Dim oSheet As Object 'Перменная для текущей страницы, обычно это Sheet1 или Лист1 Dim Cell As Object 'Переменная для текущей ячейки Doc = ThisComponent 'Получение документа oSheet = Doc.Sheets(0) 'Получение первой страницы документа For i=3 To 89 Cell =oSheet.getCellByPosition(7, i) 'Получение ячейки с номером(H - это 7) H'i' range = oSheet.getCellRangeByPosition(0,i,7 ,i) ' Получение диапозона, то есть аналог Rows(i) 'Сравниваем тип ячейки на пустой тип и также сраванием значение if Cell.Type = com.sun.star.table.CellContentType. EMPTY Or Cell.Value = 0 Or Cell.String = "" Then range.Rows.isVisible = False Else range.Rows.isVisible = True End if Next i End Sub Макрос работает только для первого листа, а мне надо чтоб он работал поочерёдно (не сразу на всех) на 4,5, 6, 6,8 и 9 листах и если можно сделать к макросу сочетание клавиш. Как только заполнится 4 лист (пятый по порядку), чтоб сочетанием клавиш применить форматирование. И так далее. Заранее благодарен за помощь. Отправленный файл урезан, так как настоящий со всеми неделями не отправлялся. |
25.12.2021, 22:12 | #6 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
и для порядка:
формулы в Excel не умеют скрывать строки (никакие формулы не умеют скрывать никакие строки) а вот о макросе можно поговорить, осталось только выяснить, что реально он должен делать? (осталось коротко и понятно описать решаемую задачу)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
25.12.2021, 23:03 | #7 |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
работает он так как и описано: на листе 2_нед скрывает строки в которых в столбце Н 0 или пусто.
https://youtu.be/itwptzjIMH0
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. |
26.12.2021, 06:41 | #8 |
Новичок
Джуниор
Регистрация: 23.12.2021
Сообщений: 4
|
Благодарю за помощь, макрос работает. Только я исправил "2_нед" на "2 нед". Но макрос удаляет строки только на листе "2 нед", а как сделать, чтоб по мере необходимости (не всех сразу) удалял строки на листах "1 нед", "2нед","3 нед", ....."6 нед"?
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Формула для переноса строк | Dulaqs | Помощь студентам | 0 | 11.03.2018 10:29 |
Макрос Скрытия строк в листе | Zzema | Microsoft Office Excel | 20 | 13.06.2014 12:39 |
кнопка скрытия и восстановления строк по условию | CooLEO | Microsoft Office Excel | 16 | 06.08.2013 14:10 |
макрос для скрытия и показа строк в выбранном диапазоне | шрк | Microsoft Office Excel | 2 | 04.11.2011 11:30 |
JS для скрытия части кода | lukoie | JavaScript, Ajax | 3 | 29.01.2010 09:34 |