Excel Vba Worksheets.range.copy метод не работает с Dropdownlist - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть выпадающий список, и в случае выбора записи запускается макрос.Выпадающий список находится в ячейке 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

Итак, мой вопрос - почему?Я думал, что смогу использовать это, чтобы скопировать диапазон ячеек?Используя непосредственное окно, тогда все работает нормально, хотя ... Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...