Вы получили неквалификацию - то есть Worksheet
не квалифицированы - Range
и Columns
вызовы.
Это хорошо - запишите период перед каждым экземпляром Range
, как и раньше Rows
.
With wks
Set Rng = .Range(.Range("B1"), .Range("B" & .Rows.Count).End(xlUp))
End With
Это, не так уж много:
Set Rng = Range("B1:B1000") ' no worksheet specified, so it's the ActiveSheet, not wks.
Или еще раз:
Columns("C").Cut
Переместить это первым End With
до конца до конца Sub
и добавьте точку перед каждым экземпляром Range
и Columns
.При этом они будут ссылаться на wks
и не означать ActiveSheet
.
Пока вы это делаете, измените этот экземпляр ActiveSheet
на wks
.Вы хотите работать с wks
, а не с ActiveSheet
.