Макрос VBA Excel 2016 для очистки диапазонов ячеек и вставки данных в пустые ячейки - PullRequest
0 голосов
/ 07 марта 2019

Цель моего макроса - сбросить лист.

Мой макрос сначала выполняет сбор средств clearcontents в пределах нескольких различных диапазонов ячеек.

Далее я хочу заполнить некоторые из этих ячеек 0

Я нашел одну рекомендацию, в которой я изменил их = "ON" на = "0"

Пересечение (Выбор, Диапазон («D7: R23»)) = «0»

Я получаю следующее,

Ошибка времени выполнения '91'

Переменная объекта или С переменной блока не установлено

Есть идеи, что я делаю неправильно?

Код выглядит следующим образом:

Sub Clearcells()

Range("D2:Z2").ClearContents

Range("D3:AG3").ClearContents

Range("D4:AG4").ClearContents

Range("AE2:AG2").ClearContents

Range("C7:R23").ClearContents

Range("W7:Y23").ClearContents

Range("AC7:AF23").ClearContents

Range("B27:AG43").ClearContents

Intersect(Selection, Range("D7:R23")) = "0"

Intersect(Selection, Range("W7:Y23")) = "0"

Intersect(Selection, Range("AC7:AF23")) = "0"

End Sub

Ответы [ 3 ]

1 голос
/ 07 марта 2019

Попробуйте это;Вы пытаетесь сделать простую очистку затем записать в пустые ячейки;вам не нужно использовать Intersect, и вы можете объединить все диапазоны, чтобы сократить код.

Range("D2:Z2, D3:AG3, D4:AG4, AE2:AG2, C7:R23, W7:Y23, AC7:AF23, B27:AG43").ClearContents
Range("D7:R23, W7:Y23, AC7:AF23") = "0"
1 голос
/ 07 марта 2019

Эта ошибка означает, что ни одна ячейка Select 'не попадает в диапазон D7: R23 . Два диапазона полностью не пересекаются. Например:

enter image description here

В приведенном выше примере я Select 'редактировал блок A1: B5 до того, как запустил строку кода.

0 голосов
/ 07 марта 2019

Я не мог понять, как очистить, а затем вставить, поэтому этот код просто заменяет все ячейки значением 0. В конечном итоге это то, что я хотел сделать.

Sub Clearcells()    
Range("D2:Z2").ClearContents    
Range("D3:AG3").ClearContents    
Range("D4:AG4").ClearContents    
Range("AE2:AG2").ClearContents    
Range("B27:AG43").ClearContents    
Range("C7:C23").ClearContents    
Range("D7:R23") = "0"    
Range("W7:Y23") = "0"    
Range("AC7:AF23") = "0"    
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...