Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
 Аватар для ali_vlad
5 / 5 / 2
Регистрация: 21.07.2013
Сообщений: 363

Запуск макроса при добавлении строк

03.11.2013, 12:30. Показов 3681. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть лист. Разделен условно на несколько диапазонов. Например:
Range(Cells(n, 2), Cells(k, 2)), Range(Cells(n, 3), Cells(k, 3)) ...
Range(Cells(a, 2), Cells(b, 2)), Range(Cells(c, 3), Cells(d, 3)) ...
...
и т.д. (всего по горизонтали 5, по вертикали 9)
Как сделать так, чтобы запускался определенный макрос (отрисовка внешних границ диапазона ячеек) только при добавлении строк (строки) на листе, в любой из указанных диапазонов?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.11.2013, 12:30
Ответы с готовыми решениями:

Работа макроса при добавлении/удалении строк
Добрый день уважаемые! Столкнулся с такой проблемой. В книге были реализованы макросы. Но после добавления строк все улетело в трубу. ...

Два макроса в Excel. Один перестает работать при добавлении другого
Всем доброе утро. Прошу помощи в проблеме, суть которой заключается в следующем: Есть два макроса, первый макрос отвечает за копирование...

Запуск макроса при открытии документа
Добрый день! В VBA еще новичок, поэтому буду говорить, как мне подсказали, если что исправьте. Написал макрос, сохранил его в формате...

11
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
03.11.2013, 13:28
Visual Basic
1
Private Sub Worksheet_Change(ByVal Target As Range)
Делайте дело по этому событию.
0
 Аватар для ali_vlad
5 / 5 / 2
Регистрация: 21.07.2013
Сообщений: 363
03.11.2013, 15:37  [ТС]
Зависает НАМЕРТВО!

Добавлено через 26 минут
Существует ли вообще возможность отследить само событие "вставка строки"
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
03.11.2013, 17:24
Я написал какое это событие - прочитайте ещё раз
0
 Аватар для ali_vlad
5 / 5 / 2
Регистрация: 21.07.2013
Сообщений: 363
03.11.2013, 18:26  [ТС]
То ли я тебя не понял, то ли ты меня. По подробнее пожалуйста.
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
03.11.2013, 18:58
Да уж куда подробнее - при добавлении строки на лист срабатывает событие Worksheet_Change() - вот это и нужно использовать.
Хотя если например оформить диапазон как таблицу - то и макросы не нужны, рамки будут автоматически "соблюдаться".
Вообще такой вопрос без файла можно рассматривать только теоретически
0
 Аватар для ali_vlad
5 / 5 / 2
Регистрация: 21.07.2013
Сообщений: 363
04.11.2013, 10:46  [ТС]
Вот часть кода
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
...
'îïðåäåëåíèå äèàïàçîíà ñòðîê óïð.
uprn = 2
For i = 1 To 100
If Cells(i, 1).Value = "1 ðîòà" Then
uprk = i - 1
Cells(uprn, 11).Value = Str(uprn) + " - " + Str(uprk)
Else: End If
Next i

' ãðàíèöû áîëüíûå
With Excel.Range(Cells(uprn, 2), Cells(uprk, 2)).Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Excel.Range(Cells(uprn, 2), Cells(uprk, 2)).Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
' ãðàíèöû îòïóñê
With Excel.Range(Cells(uprn, 3), Cells(uprk, 4)).Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Excel.Range(Cells(uprn, 3), Cells(uprk, 4)).Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
' ãðàíèöû äð. ïðè÷èíû
With Excel.Range(Cells(uprn, 5), Cells(uprk, 5)).Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Excel.Range(Cells(uprn, 5), Cells(uprk, 5)).Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
' ãðàíèöû äð. ïðè÷èíû
With Excel.Range(Cells(uprn, 6), Cells(uprk, 6)).Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Excel.Range(Cells(uprn, 6), Cells(uprk, 6)).Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
end sub
При использовании
Private Sub Worksheet_Change(ByVal Target As Range) зависает намертво
(в спойлере не открывается)
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
04.11.2013, 11:02
Без файла вникать совершенно неохота, но обычно поступают так - если код по событию изменения на листе изменяет что-то на листе, то этим кодом нужно сперва отключить эти события!
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
04.11.2013, 11:10
И что-то не увидел проверки вхождения Target в диапазоны
0
 Аватар для ali_vlad
5 / 5 / 2
Регистрация: 21.07.2013
Сообщений: 363
04.11.2013, 15:33  [ТС]
В VB я 0,00001, пишу как могу и что знаю
Пишу раз в пятилетку в случае крайней необходимости, поэтому сильно не ругайте
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
04.11.2013, 15:38
Да пишите как хотите - я например Вам не учитель, ругать не буду...
Но и файл с Вашим кодом я создавать не собираюсь.
0
 Аватар для ali_vlad
5 / 5 / 2
Регистрация: 21.07.2013
Сообщений: 363
04.11.2013, 23:10  [ТС]
Поправьте меня:
Есть в книге модуль list1calc
в нем есть
Private Sub list1()
...
End Sub
Хочу чтобы на листе на листе "Лист1" при изменении ячеек в диапазоне Range(Cells(12, 2), Cells(16, 10)) вызывался макрос из указанного выше модуля.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Range(Cells(12, 2), Cells(16, 10)) = True Then
list1
Else: End If
End Sub

Добавлено через 11 минут
То что выше отбой
Поправьте меня:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Range(Cells(12, 2), Cells(16, 10)) = True Then
list1
Else: End If
End Sub
Хочу чтобы при изменении в ячейках указанного диапазоны вызывался макрос list1 из модуля
Вызывает ошибку tipe mismatch
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.11.2013, 23:10
Помогаю со студенческими работами здесь

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

Запуск макроса при изменении ячейки
Как сделать чтобы при изменении одной или нескольких ячеек (B2,B3,B4,B5) запускался макрос который делал бы ячейку Н4 равную Е4 Я просто...

Запуск макроса при изменении ячейки
Как сделать, чтобы при изменении значения ячейки, запускался нужный макрос?

Запуск макроса из макроса ИЛИ повторение одного и того же кода
Excel Есть код в 10 строк (назовем его "блок"), который повторяется 5 раз в модуле (макросе). При любых изменения "блока"...

Запуск макроса при изменении значения ячейки
Как сделать так, чтобы макрос запускался, как только в ячейке изменится значение, оно вводится с клавиатуры.. Т.е., например, есть...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru