|
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
|
|
| 03.11.2013, 12:30 | |
|
Ответы с готовыми решениями:
11
Работа макроса при добавлении/удалении строк Два макроса в Excel. Один перестает работать при добавлении другого Запуск макроса при открытии документа |
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
||||||
| 03.11.2013, 13:28 | ||||||
0
|
||||||
|
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
|
|
|
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
|
|
|
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
|
|
|
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
|
|
| 04.11.2013, 11:10 | |
|
И что-то не увидел проверки вхождения Target в диапазоны
0
|
|
|
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
|
|
|
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
|
|
| 04.11.2013, 23:10 | |
|
Помогаю со студенческими работами здесь
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(), которая. . .
|