|
|
|
Новые листы в Excel
|
|||
|---|---|---|---|
|
#18+
Друзья, добрый день. Подскажите, пжлст. Прописал макрос - при нажатии на кнопку данные с этого листа переносятся на другой, который вновь добавляется, при этом другой лист переименовывается из "лист1" в "график №1". Данный макрос работает для одного листа, проблема появляется, когда я пытаюсь еще раз запустить макрос. Он у меня прописан только для листа №1, когда повторно нажимаешь кнопку, добавляется лист №2 и VBA начинает ругаться. Какие изменения сделать или что нужно добавить, чтобы VBA не ругался. p.s.: я в этом деле новичок, поэтому если возможно, опишите доступным языком. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2010, 14:55 |
|
||
|
Новые листы в Excel
|
|||
|---|---|---|---|
|
#18+
Элvic, пример файла. А там тебе помогут, я тоже не особо отец ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2010, 15:13 |
|
||
|
Новые листы в Excel
|
|||
|---|---|---|---|
|
#18+
Как вариант переименовывать не Sheets("Лист1").Name... а Sheets(2).Name... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2010, 15:16 |
|
||
|
Новые листы в Excel
|
|||
|---|---|---|---|
|
#18+
LETMEКак вариант переименовывать не Sheets("Лист1").Name... а Sheets(2).Name... Ну тогда каждый раз придется переименовывать.. Просто файл делается не для меня, а для сторонних пользователей, которым и скопировать трудно, не то что ковыряться в ВБА. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2010, 15:24 |
|
||
|
Новые листы в Excel
|
|||
|---|---|---|---|
|
#18+
Вот так выглядит сам макро Sub макрос1() ' Вывод графика на лист График №1 Range("A1:I85").Select Selection.Copy Sheets("График платежей").Select Sheets.Add Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False ActiveSheet.Paste Application.CutCopyMode = False Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("лист1").Select Sheets("лист1").Name = "График №1" End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2010, 15:28 |
|
||
|
Новые листы в Excel
|
|||
|---|---|---|---|
|
#18+
...чесно говоря непонятно что нужно) Штоп не ругался вначале вставить On Error Resume Next ЗЫ: еще непонятно - зачем второе Selection.Copy ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2010, 15:58 |
|
||
|
Новые листы в Excel
|
|||
|---|---|---|---|
|
#18+
LETME...чесно говоря непонятно что нужно) Штоп не ругался вначале вставить On Error Resume Next ЗЫ: еще непонятно - зачем второе Selection.Copy Я не гуру в ВБА, поэтому все делал путем записи макроса. Второе selection. copy нужно было для того, чтобы скопировать и вставить на лист только значения, так как до этого скопировались и формулы. А в начале чего поставить On Error Resume Next? Как видно, это макрос работает только для листа1. То есть, если я нажимаю кнопку запуска макроса, то создается новый лист ("Лист1") в книге и туда копируются нужные данные. Так вот, если я повторно нажимаю кнопку запуска макроса, то создается новый лист ("лист2") и здесь ВБА начинает ругаться, а именно: Run-time error '9': subscript out of range И мне нужно, чтобы не вылетало это сообщение, при повторном запуске макроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2010, 17:13 |
|
||
|
Новые листы в Excel
|
|||
|---|---|---|---|
|
#18+
Элvic, 1. Смотрите: Вы создаёте в книге новый лист. Excel, поскольку среди имён листов, названий типа "ЛистНомерТакой-то" нет, автоматически присваивает ему имя "Лист1". (Был бы в книге последним "Лист3", новому листу было бы присвоено имя "Лист4"). Пока Вы не закроете и не откроете книгу вновь, при добавлении очередного листа, несмотря на переименование предыдущего, ему будет присваиваться имя с номером, на единицу бОльшим предыдущего (до переименования). Иначе говоря, Вы хотите выделить Лист1, а его в книге нет. Отсюда и ошибка. 2. Объясните подробно, что должен делать макрос: из опубликованного кода можно строить только предположения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2010, 20:30 |
|
||
|
Новые листы в Excel
|
|||
|---|---|---|---|
|
#18+
vlth, Макрос должен выполнять следующее: 1. Есть исходный лист, на котором находятся ячеки с формулами. 2. На исходном листе находится настраиваемая кнопка, к которой подвязан макрос 3. При нажатии на эту кнопку должны происходить следующие дейстивия: * все данные на исходном листе копируются; * создается новый лист; * скопированные данные вставляются на новый лист (при этом используется специальная вставка - ширина столбцов); * копирутся данные на новом листе * на том же новом листе скопированные данные вставляются в виде значений * созданный новый лист переименовывается "График платежей1" Все это работает, если я один раз запускаю макрос. При повторном запуске должно произойти то же самое только создается новый лист №2. Остальные действия те же. И вот этом случае вылетает сообщение об ошибке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2010, 15:31 |
|
||
|
Новые листы в Excel
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2010, 20:16 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=36716454&tid=2177923]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
144ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 214ms |
| total: | 461ms |

| 0 / 0 |
