Страницы: 1
RSS
Копирование на скрытый лист при помощи макроса, Проблема при копировании как только делаешь лист скрытым
 
С листа "Данные" копирую таблицу и пытаюсь вставить её при помощи макроса на срытый лист "Архив". Пока лист не скрытый - макрос работает, как только скрываю выдает ошибку: Метод Select из класса Worksheet завершен неверно.
Я дилетант в написании макросов, так что не судите строго. Плииз! Помогите исправить код.
При копировании, предварительно на листе "Архив" вставляю пустые строки чтобы новые данные не затирали предыдущие...
Код
Sub Макрос3()


    Sheets("АРХИВ").Select
    Rows("1:10").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Sheets("Добавить").Select
    
    Range("AI1:AL9").Select
    Selection.Copy
    Sheets("АРХИВ").Select
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    
Sheets("Добавить").Select
    
    End Sub
Изменено: Сергей - 23.05.2022 21:58:00
 
Код
Sub Макрос3()
    Sheets("Добавить").Range("AI1:AL9").Copy
    Sheets("АРХИВ").Range("A1").Paste
    End Sub
Изменено: Jack Famous - 23.05.2022 17:20:16
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Код
Sub Макрос3()
 
    Dim lVisible As Long
    lVisible = Sheets("АРХИВ").Visible
    Sheets("АРХИВ").Visible = -1
 
    Sheets("АРХИВ").Select
    Rows("1:10").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Sheets("Добавить").Select
     
    Range("AI1:AL9").Select
    Selection.Copy
    Sheets("АРХИВ").Select
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
     
    Sheets("Добавить").Select
     
    Sheets("АРХИВ").Visible = lVisible
End Sub
 
Код
'Отключить обновление экрана 
Application.ScreenUpdating=False
'Сделать лист не скрытым
Worksheets("Архив").Hidden=False
'Заняться копированием
Worksheets("Добавить").Range("AI1:AL9").Copy 
Worksheets("Архив").Range("A1").PasteSpecial Paste:=xlPasteValues
'Вернуть "скрытность" листу
Worksheets("Архив").Hidden=True
'Включить обновление экрана
Application.ScreenUpdating=True
Кому решение нужно - тот пример и рисует.
 
Пытливый, а без открытия разве не скопирует? Вроде в селектах только ошибка…
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
написал:
Sub Макрос3()      Dim lVisible As Long    lVisible = Sheets("АРХИВ").Visible    Sheets("АРХИВ").Visible = -1      Sheets("АРХИВ").Select    Rows("1:10").Select    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove    Sheets("Добавить").Select          Range("AI1:AL9").Select    Selection.Copy    Sheets("АРХИВ").Select    Range("A1").Select    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _        :=False, Transpose:=False    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _        SkipBlanks:=False, Transpose:=False    Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _        SkipBlanks:=False, Transpose:=False          Sheets("Добавить").Select          Sheets("АРХИВ").Visible = lVisibleEnd Sub
К сожалению не работает.(
Скопированное вставляет на тот же лист сдвигаю всё вниз.. (
 
Цитата
написал:

К сожалению не работает. Вставляет скопированное в тот же лист смещаю всё вниз... (

 
Цитата
написал:
Worksheets("Архив").Hidden=False
Выделяет желтым. Ошибка.
 
Цитата
написал:
Код
    [URL=#]?[/URL]       1  2  3  4  5  6  7  8  9  10  11      'Отключить обновление экрана     Application.ScreenUpdating=  False    'Сделать лист не скрытым    Worksheets(  "Архив"  ).Hidden=  False    'Заняться копированием    Worksheets(  "Добавить"  ).Range(  "AI1:AL9"  ).Copy     Worksheets(  "Архив"  ).Range(  "A1"  ).PasteSpecial Paste:=xlPasteValues    'Вернуть "скрытность" листу    Worksheets(  "Архив"  ).Hidden=  True    'Включить обновление экрана    Application.ScreenUpdating=  True   
 
Worksheets("Архив").Hidden = False
Выделяет желтым. Ошибка.
 
Код
Sub test()
    'Отключить обновление экрана
    Application.ScreenUpdating = False
    'Сделать лист не скрытым
    Worksheets("Архив").Visible = True
    'Заняться копированием
    Worksheets("Добавить").Range("AI1:AL9").Copy
    Worksheets("Архив").Range("A1").PasteSpecial Paste:=xlPasteValues
    'Вернуть "скрытность" листу
    Worksheets("Архив").Visible = False
    'Включить обновление экрана
    Application.ScreenUpdating = True
End Sub
Изменено: New - 23.05.2022 18:21:54
 
New, теперь выделяет желтым следующую строку
Worksheets("Архив").Range("A1").PasteSpecial Paste:=xlPasteValues
 
я обновил выше код. У меня работает (если в файле есть листы "Архив" и "Добавить")
Изменено: New - 23.05.2022 18:24:08
 
New, вам файл скинуть?
 
мне не надо скидывать, вы можете приложить свой файл к вашему первому сообщению. Нажмите в первом сообщении кнопку "Изменить" и там ниже будет кнопка "Загрузить файлы" и мышкой можете перенести свой файл в это поле и файл загрузится (если он меньше, чем 300кб)
Страницы: 1
Наверх