#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