|
Добавление кода в новь созданный лист
|
|||
---|---|---|---|
#18+
Добрый день знатоки!! Вот хочу сделать так, чтобы новый лист создавался с кодом по моему желанию. Нашел в книжке как это делается: dim newsheet as worksheets set newsheet =sheet.add code="Нужный код" with ActiveWorkbook.VBProject.VBComponents(newsheet.name).CodeModule nextline = .countoflines + 1 .InsertLines nextline, code End With Что делаю не правильно!!! Плиз!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2006, 13:47 |
|
Добавление кода в новь созданный лист
|
|||
---|---|---|---|
#18+
Exell 2003 Доверенный доступ включил Что ещё??? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2006, 13:48 |
|
Добавление кода в новь созданный лист
|
|||
---|---|---|---|
#18+
Ошибка номер "9" Мол объект на который ссылаюсь не существует ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2006, 13:51 |
|
Добавление кода в новь созданный лист
|
|||
---|---|---|---|
#18+
что у тебя неверно не смотрел, скорее всего от-того, что в пустом модуле нечего ворошить. это работающий код. Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2006, 08:26 |
|
Добавление кода в новь созданный лист
|
|||
---|---|---|---|
#18+
1. dim newsheet as worksheets Ты объявляешь коллекцию листов, а не отдельно взятый лист. 2. set newsheet = sheet.add sheet.add поменяй на sheets.add или worksheets.add Полный пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2006, 08:41 |
|
Добавление кода в новь созданный лист
|
|||
---|---|---|---|
#18+
Я написал вот так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Всё работает, но машина отрабатывает .InsertLines nextline, code выдаёт сообщение can't enter break mode at this time и даёт выбор END, CONTINUE, HELP . Если CONTINUE то создаётся лист с кодом. Если code состоит из многих строк то выдаётся ексел выполнил недопустимую операцию. Как это победить!! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2006, 20:22 |
|
Добавление кода в новь созданный лист
|
|||
---|---|---|---|
#18+
Вот статейка: XL97: "Can't Enter Break Mode" Stepping Through a Macro Но это для 97 Excel и для случая, если ты добавляешь ActiveX контрол на лист. Попробуй еще отключить "require variable declaration" в Tools->Options->Editor, может поможет. Или еще вариант. Подключи библиотеку Microsoft Visual Basic for Applications Extensibility и перепиши код следующим образом. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Пробуй. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2006, 08:45 |
|
Добавление кода в новь созданный лист
|
|||
---|---|---|---|
#18+
Не получается: Если : Пользователь2Попробуй еще отключить "require variable declaration" в Tools->Options->Editor, может поможет. Или еще вариант. Подключи библиотеку Microsoft Visual Basic for Applications Extensibility и перепиши код следующим образом. Dim newsheet As Worksheet Dim code As String Dim nextline As Integer Dim cm As CodeModule Set newsheet = Sheets.Add code = "Dim bilo As String" & vbCrLf code = code & "Dim bilo As String" & vbCrLf code = code & "Dim stalo As String" & vbCrLf Set cm = ActiveWorkbook.VBProject. _ VBComponents(newsheet.CodeName).CodeModule With cm nextline = .countoflines + 1 .InsertLines nextline, code End With и если: sergeyvg Sub test115() Dim S As String S = "Private Sub Worksheet_Change(ByVal Target As Range)" & Chr(10) & _ "MsgBox ""My Change!""" & Chr(10) & _ "End Sub" Workbooks("Книга3").VBProject.VBComponents("Лист1").CodeModule.AddFromString S End Sub Хотя sergeyvg написал что код работает. Проблема в том же: Всё работает, но машина отрабатывает .InsertLines nextline, code выдаёт сообщение can't enter break mode at this time и даёт выбор END, CONTINUE, HELP. Если CONTINUE то создаётся лист с кодом. Если code состоит из многих строк то выдаётся ексел выполнил недопустимую операцию. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2006, 19:26 |
|
Добавление кода в новь созданный лист
|
|||
---|---|---|---|
#18+
glazz_gmsвыдаёт сообщение can't enter break mode at this time Оно попыталось сделать предварительную компиляцию твоего кода и не смогло. Ошибка синтаксическая в добавляемом коде. Конкретнее - дважды объявляешь переменную bilo. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2006, 19:51 |
|
Добавление кода в новь созданный лист
|
|||
---|---|---|---|
#18+
А если то в чем дело: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Эффект тот же. В чем же дело? Помогите разобраться ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2006, 20:37 |
|
Добавление кода в новь созданный лист
|
|||
---|---|---|---|
#18+
"Эффект тот же", это какой? Как полностью текст ошибки? Кстати, в добавляемом коде опять синтаксическая проблема. Перменная m не объявлена. Если в VBA по умолчанию включен контроль за объявлением переменных это будет расценено как ошибка. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2006, 22:26 |
|
Добавление кода в новь созданный лист
|
|||
---|---|---|---|
#18+
Ура товарищи!! Я разобрался. Ура!!!(3 раза), но когда выполняешь код по шагам то вылетает ошибка glazz_gms Машина отрабатывает .InsertLines nextline, code выдаёт сообщение can't enter break mode at this time и даёт выбор END, CONTINUE, HELP. Если CONTINUE то создаётся лист с кодом. а если сразу (F5) то все работает. Почему???? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2006, 13:43 |
|
Добавление кода в новь созданный лист
|
|||
---|---|---|---|
#18+
glazz_gms, Добрый день! Понимаю что продолжать эту тему давно минувших лет дело так себе но тем не менее она для меня очень животрепещущая. Юзаю функционал по добавлению кода приведённый в источнике: https://www.excel-vba.ru/chto-umeet-excel/kak-dobavit-kod-procedury-programmno-skopirovat-modul/comment-page-1/#comment-226873 Что делаю: 1) Копирую типовые листы из другой книги в рабочую. Никакого дополнительного кода импортируемые листы не содержат на момент копирования. 2) Добавляю 2 события для импортированного листа Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
Получаю ошибку "can't enter break mode at this time" Далее неприятно уже работать. Точки останова не работают. Код: vbnet 1. 2. 3.
Был бы очень признателен если бы вы подсказали как исключить этот конфликт! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2018, 11:42 |
|
|
start [/forum/topic.php?fid=61&msg=33542497&tid=2172318]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 299ms |
total: | 422ms |
0 / 0 |