Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
 Аватар для PowerCat
0 / 2 / 1
Регистрация: 19.09.2013
Сообщений: 464

Вставка кода в лист с через VBA

28.01.2016, 12:39. Показов 2515. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем гурам )))

Вопрос такой - в только что созданный лист вставляю код (обработку Change). Пока открыт редактор - код вставляется, закрываю редактор - выдает ошибку (скрин прилагаю). Что делаю неправильно? Благодарю за ответы..

Код
Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub InsertChange(sheetName As String)
          Dim myCode As String
 
          myCode = "Private Sub Worksheet_Change(ByVal Target As Range)" & vbNewLine
          myCode = myCode & vbTab & "If Target.row = 110 Or Target.row = 111 Or Target.row = 112 Then" & vbNewLine
          myCode = myCode & vbTab & vbTab & "Call Main.CompressorBalance(ActiveSheet.name, Target.column)" & vbNewLine
          myCode = myCode & vbTab & "End If" & vbNewLine
          myCode = myCode & "End sub"
          ThisWorkbook.VBProject.VBComponents(Sheets(sheetName).CodeName).CodeModule.AddFromString myCode
End Sub
Миниатюры
Вставка кода в лист с через VBA  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.01.2016, 12:39
Ответы с готовыми решениями:

Выгрузить значения комбобокс на лист через VBA
Выгрузить значения комбобокс на лист vba туда засунул, а обратно не пойму как. Но догадываюсь, что без цикла не обойтись ...

Нужно сделать подобие маленькой CMS. Вставка кода через PHP
Нужно сделать подобие маленькой CMS. Мне надо что бы можно было этот код <div class="col-xs-12"> <div...

Вставка HTML кода через PHP [ Parse error: syntax error, unexpected '<<' (T_SL) ]
Здравствуйте, я набросал форму в виде которой я хочу выводить информацию из mysql. Выводить нужно в цикле. Так же выдаёт ошибку: ...

9
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
28.01.2016, 14:26
Что в переменной sheetName?
Есть такой лист?
У меня с кнопки нормально работает.
0
 Аватар для PowerCat
0 / 2 / 1
Регистрация: 19.09.2013
Сообщений: 464
28.01.2016, 14:28  [ТС]
Там имя свежесозданного листа...
Есть кнопа - жму, создается лист, в его модуль вставляется код.
Пока редактор открыт - вставка нормальная.
Если редактор закрыт - ошибка.
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
28.01.2016, 14:43
Дайте файл с кодом и кнопкой - что тут гадать...
Будете делать пример - может и сами ошибку найдёте.
0
 Аватар для PowerCat
0 / 2 / 1
Регистрация: 19.09.2013
Сообщений: 464
28.01.2016, 14:51  [ТС]
Вот пример. Такая же фигня ((
Вложения
Тип файла: rar Пример.rar (22.4 Кб, 12 просмотров)
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
28.01.2016, 15:42
PowerCat, не следует создавать самомодифицирующийся проект VBA без крайней необходимости (для этого кстати должна быть установлена галка "доверять объектной модели VBA", что сделано не у всех пользователей).
В данном случае можно иметь скрытый лист-шаблон с кодом, и по нажатию кнопки просто копировать его в конец книги. Вот весь код кнопки, который реализует существующую логику.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub CommandButton1_Click()
  On Error Resume Next
  With Sheets("NEW"): End With
  If Err = 0 Then Exit Sub 'лист NEW существует
  Application.ScreenUpdating = False
  With Sheets("TEMPLATE")
    .Visible = xlSheetVisible
    .Copy after:=Sheets(Sheets.count)
    .Visible = xlSheetVeryHidden
  End With
  ActiveSheet.Name = "NEW"
  Application.ScreenUpdating = True
End Sub
Добавил в модуль пустую Sub CompressorBalance(x, y) , чтобы проект скомпилировался.
Возможно, Вы захотите на листе-шаблоне создать какую-то шапку, форматирование и т.п. Переделка кода не потребуется.
Вложения
Тип файла: zip Пример.zip (23.1 Кб, 23 просмотров)
0
 Аватар для PowerCat
0 / 2 / 1
Регистрация: 19.09.2013
Сообщений: 464
28.01.2016, 15:47  [ТС]
Правильно ли я понял - вы предлагаете создать лист, потом на него кинуть шаблон листа, у которого в модуле уже вшита процедура?
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
28.01.2016, 16:06
PowerCat, в книге есть скрытый лист-шаблон с процедурой. При нажатии кнопки он копируется в конец книги, копия тоже содержит процедуру.
Плюс проверка существования листа с именем NEW, отображение/скрытие листа-шаблона.
0
 Аватар для PowerCat
0 / 2 / 1
Регистрация: 19.09.2013
Сообщений: 464
29.01.2016, 06:57  [ТС]
Благодарю за ответы - изящное решение, наверное так и сделаю. Однако же хотелось бы понять, почему у меня не хочет работать... Все для макросов, разумеется, у меня включено

Добавлено через 14 часов 31 минуту
Таким образом, вопрос остается открытым - в чем косяк в моем коде?
0
 Аватар для PowerCat
0 / 2 / 1
Регистрация: 19.09.2013
Сообщений: 464
15.02.2016, 08:26  [ТС]
Неужели никто не в курсе - почему такой косяк лезет? ((
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.02.2016, 08:26
Помогаю со студенческими работами здесь

Вставка данных на неактивный лист
With Worksheets(&quot;Лист5&quot;).QueryTables.Add(Connection:=..., Destination:=Range(&quot;A1&quot;)) .CommandText = &quot;select....&quot; .Name =...

Вставка данных из БД Access на лист
ConnectionString = &quot;Provider=Microsoft.ACE.OLEDB.12.0; Data Source=&quot; &amp; ActiveWorkbook.Path &amp; &quot;\BooksDB.accdb; Jet OLEDB:Database;&quot; ...

Вставка текста из файла на лист
Привет всем! Помогите с такой задачей. Есть скрипт, который по нажатию кнопки на листе и выбора необходимого файла копирует из текстового...

Копирование и вставка, не открывая файл и лист
Написал кое что, но не так как хотелось да и так тоже не работает, но почему то не работают Sheets(varo).Activate Sheets(bro).Activate ...

Вставка картинки на лист из буфера обмена
Имеется код, который якобы должен сохранять картинки в файл excel из буфера обмена. Подскажите плиз, как его запустить? В VBA я не...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
[В процессе разработки] SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
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
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru