Аватар для Zizu-
-1 / 0 / 0
Регистрация: 06.04.2023
Сообщений: 56
1
Excel

Как сделать так ,чтобы этот МАКРОС работал на всех листах книги, а не только на активной

28.04.2023, 17:19. Показов 1858. Ответов 21

Author24 — интернет-сервис помощи студентам
Добрый вечер друзья. Пожалуйста, подскажите, как сделать, чтобы этот макрос работал на всех листах книги, а не только на активном?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub MMM()
    With Selection
     .Cells.UnMerge
     .SpecialCells(xlCellTypeBlanks).Interior.Color = 16777215
     
    End With
    
End Sub
Sub Fill_Blanks()
    For Each cell In Range("A3:A80")
        If IsEmpty(cell) Then cell.Value = cell.Offset(-1, 0).Value
    Next cell
End Sub
Sub Soedinenie()
    Call MMM
    Call Fill_Blanks
 
End Sub
Можете дополнить МАКРОС ?) Спасибо
Вложения
Тип файла: xlsx Милка Тренировочный вариант 3.xlsx (27.3 Кб, 9 просмотров)
0
Лучшие ответы (1)
28.04.2023, 17:19
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.04.2023, 17:19
Ответы с готовыми решениями:

Как сделать, чтобы этот макрос работал по всей длине колонок?
Нужна не большая помощь. Как сделать, чтобы этот макрос работал по всей длине колонок где находится текст, не зависимо от количества строк...

Как сделать чтобы макрос работал только в диапазоне А1-А100?
Как сделать чтобы макрос работал только в диапазоне А1-А100??

Как сделать так, чтобы hover эффект работал только на наведенный объект?
Как сделать так, чтобы hover функция работала на блок, на который наведена мышка? У меня почему-то активируются сразу все блоки при...

21
915 / 348 / 43
Регистрация: 10.05.2021
Сообщений: 1,469
Записей в блоге: 10
28.04.2023, 17:26 2
Zizu-, здравствуйте
Нужно указать перед Range лист
Изучите
0
 Аватар для Zizu-
-1 / 0 / 0
Регистрация: 06.04.2023
Сообщений: 56
28.04.2023, 17:28  [ТС] 3
Jack Famous, Можете помочь? Указать ( у меня листы с 2018, 2019, 2020, 2021, 2022, 2023,2024,)
А то укажу не там, и накосячу. Спасибо.
0
915 / 348 / 43
Регистрация: 10.05.2021
Сообщений: 1,469
Записей в блоге: 10
28.04.2023, 17:30 4
Лучший ответ Сообщение было отмечено Burk как решение

Решение

Zizu-, не попробуете — не научитесь. Успехов!
0
 Аватар для Zizu-
-1 / 0 / 0
Регистрация: 06.04.2023
Сообщений: 56
28.04.2023, 17:36  [ТС] 5
Jack Famous,

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub MMM()
 
With Selection
.Cells.UnMerge
.SpecialCells(xlCellTypeBlanks).Interior.Color = 16777215
 
End With
 
End Sub
Sub Fill_Blanks()
For Each cell In Sheets ("2021");Sheets ("2022") Range("A3:A80")
If IsEmpty(cell) Then cell.Value = cell.Offset(-1, 0).Value
Next cell
End Sub
Sub Soedinenie()
Call MMM
Call Fill_Blanks
 
End Sub
Посмотрите так верно?
0
915 / 348 / 43
Регистрация: 10.05.2021
Сообщений: 1,469
Записей в блоге: 10
28.04.2023, 18:01 6
Цитата Сообщение от Zizu- Посмотреть сообщение
так верно?
запустите и увидите. Если получили то, что ожидали, то верно.
Но у вас будет ошибка. Статью не изучили, а там есть ваш пример с циклом по листам…
0
 Аватар для Zizu-
-1 / 0 / 0
Регистрация: 06.04.2023
Сообщений: 56
28.04.2023, 18:20  [ТС] 7
Jack Famous, Ошибку выдает вы верно говорите. Я читаю, но в конце рабочего дня ничего не укладывается в голову. Помогите плиз?

Добавлено через 12 минут
Jack Famous, Дочитал до конца.Сейчас пришлю код.И скажете правильно или нет?


Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub MMM()
    With Selection
     .Cells.UnMerge
     .SpecialCells(xlCellTypeBlanks).Interior.Color = 16777215
     
    End With
    
End Sub
Sub Fill_Blanks()
    For Each cell In ActiveWorkbook.Worksheets
    wsSh.Activate Range("A3:A80")
        If IsEmpty(cell) Then cell.Value = cell.Offset(-1, 0).Value
    Next cell
End Sub
Sub Soedinenie()
    Call MMM
    Call Fill_Blanks
 
End Sub
0
3938 / 2332 / 789
Регистрация: 02.11.2012
Сообщений: 6,191
29.04.2023, 10:10 8
Словами описать можете, что вы делаете?
по коду:
wsSh - это что?
0
Одесса - Украина
 Аватар для MikeVol
467 / 157 / 56
Регистрация: 01.04.2020
Сообщений: 509
29.04.2023, 14:44 9
Vlad999, Приветствую.ТС wsSh взял отсюда переменую но как правильно ею пользоваться так и не понял. Пусть хорошенько прочитает статью от Дмитрия, глядишь сам чего-то научиться.
0
 Аватар для Zizu-
-1 / 0 / 0
Регистрация: 06.04.2023
Сообщений: 56
02.05.2023, 11:45  [ТС] 10
MikeVol, Микель привет.Можешь помочь.Ничего не получается. Как мне сделать так , чтобы мой макрос применялся на всех листах. Помоги пожалуйста

Добавлено через 1 минуту
Vlad999, Влад помоги пожалуйста решить мой вопрос.Нужно чтобы макрос применялся на всех листах. Я читаю форумы , но не догоняю.\Сложно в этом плане.Если получится помочь, то хотя бы пойму.

Добавлено через 17 минут
Narimanych, Добрый день,пожалуйста помогите.очень нужна ваша помощь, как применить этот макрос на всех листах одновременно на всех листах ?? Чтобы одной кнопокй сработало на весх листах. Название листов такие "2018г.", "2019г.", "2020г."итд

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub MMM()
    With Selection
     .Cells.UnMerge
     .SpecialCells(xlCellTypeBlanks).Interior.Color = 16777215
     
    End With
    
End Sub
Sub Fill_Blanks()
    For Each cell In Range("A3:A80")
        If IsEmpty(cell) Then cell.Value = cell.Offset(-1, 0).Value
    Next cell
End Sub
Sub Soedinenie()
    Call MMM
    Call Fill_Blanks
 
End Sub
0
1 / 1 / 0
Регистрация: 13.06.2019
Сообщений: 88
02.05.2023, 13:17 11
Цитата Сообщение от Vlad999 Посмотреть сообщение
Словами описать можете, что вы делаете?
Соглашусь. В чем задача-то?
0
 Аватар для Zizu-
-1 / 0 / 0
Регистрация: 06.04.2023
Сообщений: 56
02.05.2023, 13:22  [ТС] 12
Сашун,
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub MMM()
With Selection
.Cells.UnMerge
.SpecialCells(xlCellTypeBlanks).Interior.Color = 16777215
 
End With
 
End Sub
Sub Fill_Blanks()
For Each cell In Range("A3:A80")
If IsEmpty(cell) Then cell.Value = cell.Offset(-1, 0).Value
Next cell
End Sub
Sub Soedinenie()
Call MMM
Call Fill_Blanks
 
End Sub
Мне необходимо этот макрос применить на всех листах своей книги одновременно.Я не знаю куда мне вставить название своих листов. они называются в данном файле, который я прикрепил выше вот так "2021г.", "2022г." итд.
0
1 / 1 / 0
Регистрация: 13.06.2019
Сообщений: 88
02.05.2023, 13:29 13
Цитата Сообщение от Zizu- Посмотреть сообщение
Sub MMM()
With Selection
.Cells.UnMerge
.SpecialCells(xlCellTypeBlanks).Interior.Color = 16777215
End With
End Sub
Sub Fill_Blanks()
For Each cell In Range("A3:A80")
If IsEmpty(cell) Then cell.Value = cell.Offset(-1, 0).Value
Next cell
End Sub
Sub Soedinenie()
Call MMM
Call Fill_Blanks
End Sub
Простите, но это - кусок непонятного кода.
СЛОВАМИ можете описать, ЧТО Вы ходите сделать на каждом листе книги?
0
3938 / 2332 / 789
Регистрация: 02.11.2012
Сообщений: 6,191
02.05.2023, 13:31 14
Visual Basic
1
2
3
4
5
6
7
8
9
Sub Fill_Blanks()
For i = 1 To Sheets.Count
With Sheets (i)
    For Each cell In .Range("A3:A80")
        If IsEmpty(cell) Then cell.Value = cell.Offset(-1, 0).Value
    Next cell
End With
Next
End Sub
Первый макрос работает у вас с каким то выделением, я о нем ничего не знаю. так что код проверить не могу.

Zizu-, код оформляйте тегом VB.
0
 Аватар для Zizu-
-1 / 0 / 0
Регистрация: 06.04.2023
Сообщений: 56
02.05.2023, 13:44  [ТС] 15
Vlad999,

Visual Basic
1
2
3
4
5
6
Sub MMM()
    With Selection
     .Cells.UnMerge
     .SpecialCells(xlCellTypeBlanks).Interior.Color = 16777215
     
    End With
Выделяется диапозоy таблицы,далее происходит РАЗЪЕДИНЕНИЕ всех объединеных ячеек в таблице.Так понятно?)
0
3938 / 2332 / 789
Регистрация: 02.11.2012
Сообщений: 6,191
02.05.2023, 13:48 16
Zizu-,
Цитата Сообщение от Zizu- Посмотреть сообщение
Этот код просто разъединяет все объединеные ячейки в таблице
Вот тут вы ошибаетесь. Он разъединяет в выделенном диапазоне. Или вы прежде чем запустить макрос выделяете вручную всю таблицу? В параллельной теме вам дали ответ. эту тему не вижу смысла продолжать.
0
 Аватар для Zizu-
-1 / 0 / 0
Регистрация: 06.04.2023
Сообщений: 56
02.05.2023, 13:49  [ТС] 17
Vlad999, Да вы правы я в ручную выделяю пере запуском
0
3938 / 2332 / 789
Регистрация: 02.11.2012
Сообщений: 6,191
02.05.2023, 13:54 18
Лишнее телодвижение, макрос может сделать это за вас. Для работы макроса не обязательно выделять диапазон, достаточно указать.
0
1 / 1 / 0
Регистрация: 13.06.2019
Сообщений: 88
02.05.2023, 13:55 19
Цитата Сообщение от Zizu- Посмотреть сообщение
Vlad999, Да вы правы я в ручную выделяю пере запуском
Как тогда объяснить применение этого макроса "на всех листах своей книги", да еще и "одновременно"?
Открывайте по очереди каждый лист, выделяйте и запускайте макрос...

Еще раз, что вы хотите сделать на каждом листе книги? какой должен быть результат? СЛОВАМИ.
0
 Аватар для Zizu-
-1 / 0 / 0
Регистрация: 06.04.2023
Сообщений: 56
02.05.2023, 14:09  [ТС] 20
Сашун,
1) я выделяю диапозон в таблице,где есть много объединенных ячеек
2)Первый макрос Разъединяет объединенные ячейки и перекрашивает разъединенные ячейки пустых ячеек в белый цвет, что в свою очередь помогает визуализировать ОБЪЕДИНЕНИЕ ячеек,и при этом не будет нарушаться фильтрация и сортировка, и не должно быть сбоя в сводных таблицах.
3)Далее второй макрос Заполняет первый столбец одинаковым значением ячейки выше, что позволит в дальнейшем при форматировании правильно рассчитать сумму платежей по строкам
4)макрос ниже запускает и первый и второй макрос
5) мне нужно чтобы при нажатии на макрос он применился на всех листах сразу.

Добавлено через 45 секунд
Vlad999, Можете указать в своем макросе пожалуйста?

Добавлено через 6 минут
А что именно указать? не понял
0
02.05.2023, 14:09
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.05.2023, 14:09
Помогаю со студенческими работами здесь

Скрипт работает только в IE, как сделать чтобы работал на всех браузерах?
вот собственно говоря сам скрипт это наброски для меня:) <html> <head> <script language="javascript"> function...

Нужно, чтобы этот макрос запускался с листа 1 и работал на листе 5
Sub Poisk_N() Dim wsh As Worksheet, i As Long, j As Long, k As Long With ThisWorkbook.Worksheets(5) k = .Cells(31, 2) ...

Как сделать так, чтобы код работал с матрицей 4*4?
Добрый день. У меня есть код, который с помощью метода Гаусса решает СЛАУ. Как его модифицировать таким образом, чтобы он работал с...

Исправить макрос так, чтобы он работал со скрытыми столбцами
Макрос не работает в скрытых столбцах. Что делать? Пример во вложении.

Как сделать так, чтобы батник работал с несколькими файлами?
Проблема в бат-файле. Как сделать так, чтобы батник работал на несколько файлов? Вот код: pushd c:\RKC\OUT\ C:\RKC\debase\xml fo %1...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Система безопасности в Laravel: возможности и примеры
Wired 18.02.2025
Каждый день появляются новые виды атак и уязвимостей, которые могут поставить под угрозу конфиденциальные данные пользователей и функционирование всей системы. В этом контексте выбор надежного. . .
Давайте сравним Django и Laravel
Wired 18.02.2025
Django и Laravel - два мощных инструмента, которые часто сравнивают между собой. Оба фреймворка предлагают разработчикам богатый набор возможностей для создания масштабируемых веб-приложений, но. . .
Laravel или React - что лучше?
Wired 18.02.2025
В разработке веб выбор правильного инструмента часто определяет успех всего проекта. Особенно интересным представляется сравнение Laravel и React - двух популярных технологий, которые часто. . .
Laravel 11: новые возможности, гайд по обновлению
Wired 18.02.2025
Laravel 11 - это новая масштабная версия одного из самых популярных PHP-фреймворков, выпущенная в марте 2024 года. Эта версия продолжает традицию внедрения передовых технологий и методологий. . .
Миграции в Laravel
Wired 18.02.2025
Разработка веб-приложений на Laravel неразрывно связана с управлением структурой базы данных. При работе над проектом часто возникает необходимость вносить изменения в схему базы данных - добавлять. . .
Аутентификация в Laravel
Wired 18.02.2025
В современном мире веб-разработки безопасность пользовательских данных становится критически важным аспектом любого приложения. Laravel, как один из самых популярных PHP-фреймворков, предоставляет. . .
Laravel или Symfony: что лучше для старта?
Wired 18.02.2025
В веб-разработке выбор правильного фреймворка может стать определяющим фактором успеха проекта. Особенно это актуально для PHP - одного из самых распространенных языков программирования, где Laravel. . .
Что нового в Laravel 12
Wired 18.02.2025
С момента своего появления в 2011 году Laravel постоянно развивается, внедряя инновационные решения и совершенствуя существующие возможности. В начале 2025 года ожидается выход Laravel 12 - новой. . .
Роутер в Laravel: как работать с маршрутами
Wired 18.02.2025
Маршрутизация - один из основополагающих элементов любого веб-приложения на Laravel, определяющий как приложение отвечает на HTTP-запросы к различным URL-адресам. По сути, роутинг - это механизм. . .
Интеграция шаблона Bootstrap в Laravel PHP
Wired 18.02.2025
Разработка веб-приложений в современном мире требует не только надежного бэкенда, но и привлекательного, отзывчивого интерфейса. Laravel, как один из самых популярных PHP-фреймворков, отлично. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru