Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Скопировать данные, создать новый лист имя1111 - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скопировать данные, создать новый лист имя1111 (Макросы/Sub)
Скопировать данные, создать новый лист имя1111
Yar4i4 Дата: Четверг, 02.06.2016, 06:38 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 71
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Доброе утро.
Вроде простое действо: Скопировать видимые ячейки и вставить их на новый лист с именем 1111.
Программа, которая работает с Эксель-книгой выбрасывает список листов, как скрытых, так и активных. И мне необходимо прокручивать этот список чтобы найти свой созданный по умолчанию "Лист1" (или "Лист2", если "Лист1" уже создан, и т.д.)
Помимо именованных Лист1, Лист2 есть ещё другая нумерация, согласно которой листы выстраиваются по порядку (не алфавитном) - бывалые знают как это звучит правильно - я своими словами сказал.
И мне удобнее из списка листов выбрать лист с именем "111111111111111111111". А ещё удобнее, если мой лист "1111" будет первым в этом списке.
Есть макрос:
[vba]
Код
Sub 123()
'Предварительно выделить область
    Selection.SpecialCells(xlCellTypeVisible).Select
    Selection.Copy
    Sheets.Add After:=ActiveSheet
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
[/vba]

Я по разному пробовал присвоить имя в этой v строке, но встречал ошибку.
[vba]
Код
Sheets.Add After:=ActiveSheet
[/vba]
Куда name 1111 вставить? Помогите пожалуйста.
К сообщению приложен файл: 6557171.xlsx (21.9 Kb)


Сообщение отредактировал Yar4i4 - Четверг, 02.06.2016, 06:41
 
Ответить
СообщениеДоброе утро.
Вроде простое действо: Скопировать видимые ячейки и вставить их на новый лист с именем 1111.
Программа, которая работает с Эксель-книгой выбрасывает список листов, как скрытых, так и активных. И мне необходимо прокручивать этот список чтобы найти свой созданный по умолчанию "Лист1" (или "Лист2", если "Лист1" уже создан, и т.д.)
Помимо именованных Лист1, Лист2 есть ещё другая нумерация, согласно которой листы выстраиваются по порядку (не алфавитном) - бывалые знают как это звучит правильно - я своими словами сказал.
И мне удобнее из списка листов выбрать лист с именем "111111111111111111111". А ещё удобнее, если мой лист "1111" будет первым в этом списке.
Есть макрос:
[vba]
Код
Sub 123()
'Предварительно выделить область
    Selection.SpecialCells(xlCellTypeVisible).Select
    Selection.Copy
    Sheets.Add After:=ActiveSheet
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
[/vba]

Я по разному пробовал присвоить имя в этой v строке, но встречал ошибку.
[vba]
Код
Sheets.Add After:=ActiveSheet
[/vba]
Куда name 1111 вставить? Помогите пожалуйста.

Автор - Yar4i4
Дата добавления - 02.06.2016 в 06:38
Апострофф Дата: Четверг, 02.06.2016, 07:05 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 444
Репутация: 122 ±
Замечаний: 0% ±

Excel 1997
Куда name 1111 вставить?

[vba]
Код
Sheets.Add BEFORE:=SHEETS(1) 'After:=ActiveSheet
activesheet.name=1111
[/vba]?


Сообщение отредактировал Апострофф - Четверг, 02.06.2016, 07:06
 
Ответить
Сообщение
Куда name 1111 вставить?

[vba]
Код
Sheets.Add BEFORE:=SHEETS(1) 'After:=ActiveSheet
activesheet.name=1111
[/vba]?

Автор - Апострофф
Дата добавления - 02.06.2016 в 07:05
Pelena Дата: Четверг, 02.06.2016, 07:44 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 19165
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
А если так?
[vba]
Код
Sheets.Add(Before:=Sheets(1)).Name = 1111
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеА если так?
[vba]
Код
Sheets.Add(Before:=Sheets(1)).Name = 1111
[/vba]

Автор - Pelena
Дата добавления - 02.06.2016 в 07:44
_Boroda_ Дата: Четверг, 02.06.2016, 07:58 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Yar4i4, В коде выделите слово Add и нажмите F1 - появится справка
Оттуда
Цитата
expression.Add(Before, After, Count, Type)

Тогда вставка первого листа
[vba]
Код
Sheets.Add Sheets(1)
[/vba]

А можно пойти другим путем: вставка перед текущим листа с именем 11111 и перемещение его вперед
[vba]
Код
Sheets.Add.Name = "11111"
Sheets("11111").Move Sheets(1)
[/vba]
Добавлено
А все вместе, как уже написала Лена, пока я расписывал тут варианты
[vba]
Код
Sheets.Add(Sheets(1)).Name = 1111
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995


Сообщение отредактировал _Boroda_ - Четверг, 02.06.2016, 08:00
 
Ответить
СообщениеYar4i4, В коде выделите слово Add и нажмите F1 - появится справка
Оттуда
Цитата
expression.Add(Before, After, Count, Type)

Тогда вставка первого листа
[vba]
Код
Sheets.Add Sheets(1)
[/vba]

А можно пойти другим путем: вставка перед текущим листа с именем 11111 и перемещение его вперед
[vba]
Код
Sheets.Add.Name = "11111"
Sheets("11111").Move Sheets(1)
[/vba]
Добавлено
А все вместе, как уже написала Лена, пока я расписывал тут варианты
[vba]
Код
Sheets.Add(Sheets(1)).Name = 1111
[/vba]

Автор - _Boroda_
Дата добавления - 02.06.2016 в 07:58
Yar4i4 Дата: Четверг, 02.06.2016, 08:01 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 71
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Цитата Апострофф, 02.06.2016 в 07:05, в сообщении № 2
Sheets.Add BEFORE:=SHEETS(1) 'After:=ActiveSheet
activesheet.name=1111
?

Спасибо работает.

Спасибо работает.
Результат одинаковый. Взял оба)))) закомментировать буду по очереди.

Спасибо огромное. Вы молодцы.
Я про Before читал, но в контексте, что он ставит лист перед определённым листом, в общем недопонял и прошёл мимо.
К сообщению приложен файл: 5186824.jpg (70.4 Kb)
 
Ответить
Сообщение
Цитата Апострофф, 02.06.2016 в 07:05, в сообщении № 2
Sheets.Add BEFORE:=SHEETS(1) 'After:=ActiveSheet
activesheet.name=1111
?

Спасибо работает.

Спасибо работает.
Результат одинаковый. Взял оба)))) закомментировать буду по очереди.

Спасибо огромное. Вы молодцы.
Я про Before читал, но в контексте, что он ставит лист перед определённым листом, в общем недопонял и прошёл мимо.

Автор - Yar4i4
Дата добавления - 02.06.2016 в 08:01
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скопировать данные, создать новый лист имя1111 (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!