Копирование значений из указанной ячейки на листе 1 в указанный диапазон выбранных листов

#excel #vba

#excel #vba

Вопрос:

Я хотел бы вставить значения из диапазона ячеек на листе 1 в определенный диапазон, установленный на ранее выбранных / активированных листах. Таким образом, я хочу, чтобы оно вставлялось, скажем, только в диапазон B1 и далее, но только для листов Sheet2, Sheet3, а НЕ для Sheet4, поскольку я не выбрал его в своей книге.

 Sub CopyFirstRow()
Dim Wb As Workbook
Dim Sht As Worksheet
Dim mySelectedSheets As Sheets

Wb.Sheets("Global").Range("B1", "Q39").Copy

Set mySelectedSheets = ActiveWindow.SelectedSheets


For Each Sht In mySelectedSheets
            ActiveSheet.Paste
Sht.Range("B1").PasteSpecial xlPasteValues
Next
Application.CutCopyMode = False
End With
End With

End Sub
  

Пожалуйста, объясните, что я делаю не так, поскольку я все больше и больше пытаюсь понять VBA и, в частности, НАБОР функций FOR WITH.

Ответ №1:

Вы затемнили wb, но никогда не устанавливали рабочую книгу.

У вас есть две «заканчивающиеся на», но нет начальных «С».

У вас есть Activesheet.paste, но вы не выбрали лист

 Sub Button1_Click()


    Dim Wb As Workbook
    Dim Sht As Worksheet
    Dim mySelectedSheets As Sheets

    Set Wb = ThisWorkbook

    Wb.Sheets("Global").Range("B1", "Q39").Copy

    Set mySelectedSheets = ActiveWindow.SelectedSheets


    For Each Sht In mySelectedSheets
        Sht.Range("B1").PasteSpecial xlPasteValues
    Next

    Application.CutCopyMode = False


End Sub