Новости:

Новая редакция правил форума: 2.4. Если вопрос или ответ содержится во вложенном файле, все-равно кратко описывайте в сообщении вопрос или суть решения. Это необходимо, чтобы тему можно было найти через поиск.

Главное меню

Имя Листа

Автор SvytoIIIa, 26.02.2014, 07:55

« назад - далее »

SvytoIIIa

Добрый день подскажите как решить вот такую проблему: в маркосе нужно прописать что бы все нужные данные переносились на только что созданный Лист
Sub Макрос1()
'
' Макрос1 Макрос
'

'
    Sheets.Add After:=Sheets(Sheets.Count)
    Sheets("ОБРАЗЕЦ").Select
    Cells.Select
    Selection.Copy
    Sheets("Лист2").Select
    Cells.Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Sheets("ОБРАЗЕЦ").Select
    Range("A1:Y38").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Лист2").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=6
    Range("P18:R19").Select
    ActiveWindow.SmallScroll Down:=-12
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("Z11").Select
    ActiveWindow.SmallScroll Down:=12
    Sheets("ОБРАЗЕЦ").Select
    ActiveWindow.SmallScroll Down:=-6
    Sheets("Лист2").Select
End Sub

Лист2 в данном случае является новым созданнымпроблема в том что автоматически он создает лист с новым порядковым номером и этот макрос перестает работать..

Оформляйте коды тэгами, значок - #

Алексей Шмуйлович

Здравствуйте.

Напишите

    Dim sh As New Worksheet
   
вместо

    Sheets.Add After:=Sheets(Sheets.Count)

И дальше вместо "Sheets("Лист2")" везде используйте просто "sh"

SvytoIIIa

Прописал, вот это теперь выдает: "Class does not support Automation or does not support expected interface"

cheshiki1

приложите файл.

SvytoIIIa


Wasilic

Попробуйте так, после создания листа,
Sheets.Add After:=Sheets(Sheets.Count)
создайте переменную с его именем:
list = ActiveSheet.Name
и дальше, пользуйтесь переменной
Sheets(list).Select
Может и я на что сгожусь ... Если сгодился, можете меня по+благодарить+.

SvytoIIIa

Цитата: Wasilic от 27.02.2014, 23:44
Попробуйте так, после создания листа,
Sheets.Add After:=Sheets(Sheets.Count)
создайте переменную с его именем:
list = ActiveSheet.Name
и дальше, пользуйтесь переменной
Sheets(list).Select

Спасибо большое! все заработало)