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

Worksheet.SelectionChange() Как добавить в рабочую книгу которой еще нет?

06.12.2021, 20:53. Показов 1177. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем мне надо, при открытии еще одной рабочей книги в Excel, как то отлавливать событие Worksheet.SelectionChange(). Загуглил что этот код должен быть помещен модуль рабочего листа за Selection событием которого следишь. А как это сделать если до открытия книги этого модуля в природе нет?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.12.2021, 20:53
Ответы с готовыми решениями:

Как получить ссылку на рабочую книгу Excel, в которой выполняется процедура?
Добрый день. Подскажите, пожалуйста, ответ на такой вопрос. Имеется рабочая книга, в которой запускается на выполнение макрос. В ходе...

(VBA Excel) Добавить макрос в рабочую книгу, в активный лист
Добрый день. Подскажите пожалуйста как сделать так чтобы макрос расположенный в PERSONAL добавлял макрос в активный лист рабочей книги,...

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

12
Наивное Существо
 Аватар для vedunasv
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
06.12.2021, 20:55
Так создайте этот модуль - вопрос ваш сразу и ответ даёт.
И назовите его своим именем - чтоб не забыли, что он делает.
0
Часто онлайн
 Аватар для КостяФедореев
987 / 637 / 280
Регистрация: 09.01.2017
Сообщений: 2,080
07.12.2021, 09:43
Цитата Сообщение от viewrock Посмотреть сообщение
добавить в рабочую книгу которой еще нет
а как она появляется?
0
859 / 509 / 187
Регистрация: 09.03.2009
Сообщений: 1,724
07.12.2021, 12:19
Visual Basic
1
Set newWB = Application.Workbooks.Add
0
Часто онлайн
 Аватар для КостяФедореев
987 / 637 / 280
Регистрация: 09.01.2017
Сообщений: 2,080
07.12.2021, 12:24
Zeag,
Цитата Сообщение от Zeag Посмотреть сообщение
Set newWB = Application.Workbooks.Add
я то знаю
У ТС не понятно, что да как.
0
859 / 509 / 187
Регистрация: 09.03.2009
Сообщений: 1,724
07.12.2021, 12:28
КостяФедореев, так я потому Ваш ник и не нажимал, а просто написал, чтобы было в теме и ТС прочел. Что Вы знаете - более чем уверен. )))
0
2 / 2 / 0
Регистрация: 09.08.2016
Сообщений: 57
07.12.2021, 17:42  [ТС]
Еще раз....модуль я могу создать, но открываемые новые книги каждый раз разные...И когда они открываются создается модуль с названием файла Excel который был открыт методом Open. Я вот этут часть не догоняю. Что получается можно открыть книгу в уже существующий модуль другой книги с сохранением его названия? (ну и всего кода что в нем был)
0
859 / 509 / 187
Регистрация: 09.03.2009
Сообщений: 1,724
07.12.2021, 18:26
viewrock, вам что надо? В файле создать модуль кода и записать в него? Или в процессе исполнения открыть файл и манипулировать данными в его листах?
Редактор - Alt-F11, Insert - Module или Insert - Userform. Рисуете элементы на формы, тыкаете в них, пишете код.
Если обработка данных - открываете Workbooks.Open нужные файлы или создаете новый Workbooks.Add, обрабатываете.
0
Наивное Существо
 Аватар для vedunasv
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
07.12.2021, 20:49
viewrock, вы не можете поставить правильный вопрос, вот все здесь и не поймут вас.....(((((((
Давайте так:

1. макрос у вас уже создан?
2. макрос у вас работает только на одну книгу или общий на несколько книг? То есть вы желаете один и тот же макрос иметь в новых книгах?

Если один и тот же макрос на несколько книг, то есть три варианта:
а) есть у экселя специальный файл personal.xls, который при открытии любого вашего файла автоматически одновременно тоже открывается. Вот его и можно использовать для сохранения вашего макроса, который и сможет вызываться из любого вашего файла. Но данный макрос придётся сделать PUBLIC.

б) При создании новой книги просто импортировать макрос в новую книгу.

в) добавить несколько команд в макрос, чтоб он сам себя записывал в новую книгу (как вирус компьютерный). Но скорее всего, это не ваш вариант. Но для общего развития знайте это.
0
2 / 2 / 0
Регистрация: 09.08.2016
Сообщений: 57
12.12.2021, 04:49  [ТС]
Думаю да , вариант б) Мне надо понять как записать макрос в лист только открытой книги
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
12.12.2021, 07:20
А зачем писать макрос в чужую книгу? Навредить кому-то?
Контролировать можно и не записывая макрос
Вложения
Тип файла: rar Открыть и контролировать.rar (14.8 Кб, 12 просмотров)
0
 Аватар для anton-sf
128 / 64 / 14
Регистрация: 29.03.2015
Сообщений: 265
12.12.2021, 07:38
viewrock, способ программно добавить код есть, но он требует включения доверенного доступа к VBA, который включают руками. Т.е. даже если вы напишите такой макрос то он не будет работать на другом пк
0
859 / 509 / 187
Регистрация: 09.03.2009
Сообщений: 1,724
12.12.2021, 15:30
Вообще говоря, в экселе это может и сразу прокатить, но не исключаю, что зависит от версии офиса, винды и антивируса. На 7/64 и 10/64 под офисом 2007 срабатывало. А вот аналогичный трюк в ворде требует перезапуска ворда.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Enable_AccessVBOM_and_Macro()    ' https://excelvba.ru/code/Security
    Dim Key$
    On Error Resume Next
    Key$ = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & Application.Version & _
           "\Excel\Security\"
 
    ' включаем программный доступ к объектной модели проекта VBA
    CreateObject("WScript.Shell").RegWrite Key$ & "AccessVBOM", 1, "REG_DWORD"
 
    ' ставим низкий уровень безопасности (применится после перезапуска Excel)
    CreateObject("WScript.Shell").RegWrite Key$ & "VBAWarnings", 1, "REG_DWORD"
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.12.2021, 15:30
Помогаю со студенческими работами здесь

Как защитить рабочую книгу после 10 мин. простоя?
Идея такая: Пользователь работает в программе (MS Excell), потом идет на обед... Программа стоит 10 мин., а затем выскакивает окошко...

Как добавить еще программу для закрытия, чтобы закрывался не только firefox а еще yandex?
:start nircmd.exe win hide ititle "cmd.exe" @echo off set "p1=chrome.exe" set "p2=firefox.exe" cmd /c for /l %%# in () do...

Как из макроса "пошарить" рабочую книгу Excel'a?
Пожалуйста откликнитесь, кто знает как именно (и можно ли это вообще) _макросом_ сделать рабочую книгу доступной для совместной работы?

Создать новую рабочую книгу
Создайте новую процедуру УпрЛабРаб9, которая должна выполнить следующие действия: • создать новую рабочую книгу; • вставить в эту книгу...

Загрузка файла в открытую рабочую книгу
извиняюсь за может быть простой вопрос надо на диске выбрать файл типа как стандартная команда открыть но после того как кликнули...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru