Таким образом, вы избежите любых ошибок, потому что ваши ошибки происходят от ActiveSheet
, которые могут отличаться, если пользователь взаимодействует:
Dim Lastrow As Long 'don't use Integer is a Long cut to the integer
Dim rng As Range
With ThisWorkbook.Sheets("MySheet") 'Change MySheet to your working sheet name
Lastrow = .Cells(.Rows.Count, 2).End(xlUp).Row
Set rng = .Range("B12:B" & Lastrow)
End With
Таким образом, все ваши данные будут поступать с листа MySheet
как LastRow
, так и rng
. Вы можете заметить, что я использую точку перед Cells
, Rows.count
и Range
. Это означает, что он ссылается на лист в строке: With ThisWorkbook.Sheets("MySheet")