У меня есть выпадающий список, и в случае выбора записи запускается макрос.Выпадающий список находится в ячейке B5, и мой код:
Private Sub Worksheet_Change(ByVal Target As Range)
Workbooks("Myfile.xlsm").Activate
Worksheets("Mastermap").Activate
If Target.Address = "$B$5" Then
'Set Events false
Application.EnableEvents = False
Dim lastrow As Long
Dim lastcol As Long
Dim sfilter As String
'This is the String in the Dropdownlist and resembles the worksheetname
sfilter = Range("B5").Value
Worksheets(sfilter).Activate
lastrow = Sheets(sfilter).Cells(Rows.Count, 3).End(xlUp).Row + 1
lastcol = Sheets(sfilter).Cells(4, Columns.Count).End(xlToLeft).Column
Worksheets(sfilter).Range(Cells(2, 2), Cells(lastrow, lastcol)).Copy
Worksheets("Mastermap").Activate
Worksheets("Mastermap").Range("D6").PasteSpecial xlPasteAll
Selection.EntireColumn.AutoFit
Application.EnableEvents = True
End If
End Sub
После отладки я обнаружил, что это выдает ошибку
Worksheets(sfilter).Range(Cells(2, 2), Cells(lastrow, lastcol)).Copy
Итак, мой вопрос - почему?Я думал, что смогу использовать это, чтобы скопировать диапазон ячеек?Используя непосредственное окно, тогда все работает нормально, хотя ... Заранее спасибо!