Excel- VBA- диапазон копирования от одного листа до нескольких именованных листов

#excel #vba

#Excel #vba

Вопрос:

Пытаюсь скопировать диапазон из листа 1 в тот же диапазон на 31 листе, но продолжаю получать сообщение «Ошибка времени выполнения 1004: ошибка метода вставки класса worksheet», и отладчик указывает ActiveSheet.Paste на проблему. Я могу скопировать на один лист без проблем, но не на несколько листов. Я пытался искать везде, но не могу понять, в чем проблема (вероятно, это тоже что-то простое).

 Sheets("Sheet1").Range("A1:AR34").Copy
Sheets(Array("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")).Select
Sheets("1").Activate
Sheets(Array("26", "27", "28", "29", "30", "31")).Select Replace:=False
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
 

Ответ №1:

Вы можете использовать напрямую.Метод копирования без .Выберите

 Sub Bouton1_Clic()
    Dim wsList() As String, wsName As Variant, ws As Worksheet
    Dim wsSource As Worksheet: Set wsSource = ThisWorkbook.Sheets("Sheet1")

    wsList = Split("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 26 27 28 29 30 31", " ")

    For Each wsName In wsList
        Set ws = ThisWorkbook.Sheets(wsName)
       
        wsSource.Range("A1:AR34").Copy
        ws.Range("A1").PasteSpecial xlPasteValues
        Application.CutCopyMode = xlCopy
    Next wsName

End Sub
 

Комментарии:

1. @AziMez- Спасибо за ваш ответ и помощь! С Днем благодарения!