2014-11-16 2 views
-1

В Visual Basic его <> но когда я использую его в VBA, он дает ошибку. Я использую VBA в Excel:Как добавить нет в VBA

Моя команда (работает равных) Если ActiveCell.Value = 0 Тогда

Моя команда (не работает, не равно) Если ActiveCell.Value <> 0 THen

+1

Какое сообщение об исключении вы получаете? Оператор '<>' действителен VBA. Я предполагаю, что проблема в том, что вы тестируете '=' и '<>' в разных областях вашего кода. Скорее всего, когда вы тестируете '<>' с 'ActiveCell', объект является' Nothing', поэтому, когда вы пытаетесь сравнить 'ActiveCell.Value' с любым значением в вашем коде, генерируется исключение. – Mike

+1

Никогда не используйте слова «не работает». Пожалуйста, объясните, почему. Вы получили сообщение об ошибке? что это? Или вы получаете неожиданный результат? –

+0

В "ActiveCell" содержится ошибка рабочего листа (например, '#VALUE!' Или '# DIV/0!')? Если это дает вам * Runtime error 13. Введите несоответствие. * Тогда вы получите это, используете ли вы = или <>. Отредактируйте сообщение, чтобы включить некоторые детали, и мы должны решить эту проблему. – Jeeped

ответ

0

Я бы никому не советовал работать с объектами «Active» в VBA. Это действительно сложно.

Попробуйте назначить все ваши рабочие книги, рабочие листы и диапазоны фактическим объектам. Как, например,:

Dim wb as Workbook 
Set wb = ActiveWorkbook 'good to use it in button code. 

Dim ws as Worksheet 
Set ws = wb.Sheet(1) 

Dim rng as Range 
Set rng = ws.Range("A1") 

Невозможно получить сообщение об ошибке, если вы убедитесь, что объект, на который вы ссылаетесь, существует.

Смежные вопросы