2015-08-18 2 views
0

Я пытаюсь запустить цикл в VBA со следующим утверждением:Большие/меньшие заявления о неисправности в VBA?

... 
If Range("K" & h).Value >= mingreen Then 
... 

ч начинается на 4, а значение К4 составляет 0,75 (но это происходит от формулы). mingreen - 0,5. Поэтому утверждение должно быть правдой. Но почему-то он возвращает false. На самом деле, когда ячейка является формулой, кажется, что оператор = = не работает вообще. Почему это и есть ли способ обойти это?

+0

Какие данные 'mingreen'? Вариант, Двухместный? Вы пытались использовать 'Value2' вместо' Value'? – Bond

+0

Можете ли вы опубликовать тип 'minigreen' и формулу, которую вы используете? Я смог запустить это в своем Excel, и это сработало (обратите внимание: 'minigreen' является' Integer', 'Dim minigreen как Integer: minigreen = .5'). Убедитесь, что 'h' также является' Integer'. Когда я использовал эту строку, она работает: 'If Range (« K »& 4) .Value> = minigreen Затем debug.print« True! »', Опять же это с 'Dim minigreen as Integer'. – BruceWayne

+2

@BruceWayne - Почему вы тестируете, используя целые числа, когда у него есть значения с плавающей запятой? «Двойной» был бы лучшим выбором. Ваш 'minigreen = .5' просто станет' 0'. – Bond

ответ

0

Убедитесь, что вы используете правильную книгу и лист и попробовать value2:

тип
If (Thisworkbook.sheets("nameOfSheet").Range("K" & h).Value2 >= mingreen) Then 

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

  • Нет связанных вопросов^_^