2015-12-14 3 views
3

По какой-то причине мой код не подходит к следующему листу, любая помощь будет оценена по достоинству.Macro не собирается следующей WS

CleanUpMetricsBooks() 

Dim ws As Worksheet 

For Each ws In ActiveWorkbook.Worksheets 

Range("M:N,P:Q,U:V,X:Y").EntireColumn.Delete 

End 

Next ws 

End Sub 
+1

изменения 'Диапазон ("М: N, P: Q, U: V, X: Y") EntireColumn.Delete' в' ws.Range ("М:. N, P: Q, U: V, X: Y "). EntireColumn.Delete' Вам нужно квалифицировать строку или ссылаться только на активный лист. –

ответ

1

Вы должны указать, какой лист вы «говорить» о, здесь, просто добавьте Ws. перед тем Range(...

Потому что, если не указать, какой лист вы работаете, по умолчанию, Excel будет рассмотрите Активный лист!

Sub CleanUpMetricsBooks() 
Dim ws As Worksheet 

For Each ws In ActiveWorkbook.Worksheets 
    ws.Range("M:N,P:Q,U:V,X:Y").EntireColumn.Delete 
Next ws 

End Sub 
+0

Я как раз собирался опубликовать свой комментарий. –

+0

Спасибо! очень признателен. –

+0

@ScottCraner: Но вы все еще можете, я только что увидел его и что вы отправили свой комментарий перед моим ответом. И даже если есть несколько ответов, вы все равно можете получить upvote или, поскольку OP еще не согласился с моим, вы тоже могли бы это сделать! ;) – R3uK