Почему это тусклое определение неправильно? - PullRequest
2 голосов
/ 27 сентября 2019

У меня есть код, который мне нужен для создания кнопки, код должен очистить все данные в строке со значениями 2 <и> 20, но я получаю эту ошибку: Несоответствие типов, код ошибки 13. При запускекод в режиме прерывания работает, и это то, что я нахожу странным, надеюсь, вы, ребята, можете мне помочь.

Sub ClearData()

Dim myRange As Range
Dim iCell As Range
Dim myValue As Long
Dim MyValue2 As Long

Set myRange = ThisWorkbook.Worksheets("SourceData").Range("D2:D8000")

myValue = 2
MyValue2 = 20

For Each iCell In myRange
     If iCell.Value <= myValue Or iCell.Value >= MyValue2 Or iCell.Value = 
     Zero Then iCell.Clear
Next iCell

End Sub

Я думаю, что я определил неправильно iCell, но не знаю почему, так как я только начал работать с VBA.

1 Ответ

0 голосов
/ 27 сентября 2019

После просмотра вашего документа проблема связана не с вашим кодом, а с данными в вашей электронной таблице.Как указано в комментариях, ошибка возникает в ячейке D7122, значение которой равно #DIV/0! Ошибка: «деление на ноль», поскольку формула делится на значение в диапазоне B, которое по умолчанию не заполнено нулями.Вы должны изменить это значение на =IFERROR("Insert your formula here", ""), которое будет отображаться пустым вместо #DIV/0! и не нарушать ваш код.

* отредактировано, поскольку я глуп и не увидел полную формулу.Ответ исправлен.

...