vba неправильно сравнивает значения ячеек - PullRequest
0 голосов
/ 15 января 2020

Привет всем,

я что-то здесь упускаю? я пытаюсь сравнить две ячейки, которые обе отформатированы одинаково.

способ, которым я сравниваю, таков (не обращайте внимания на переменную "i", код внутри для l oop):

If SomeSheet.Cells(i, col).Value <> SomeOtherSheet.Cells(i, 4).Value Then
    result = False
End If

Я пытался преобразовать значения в double, но мой макрос по-прежнему видит их как разные, даже если значения идентичны. Когда я отлаживаю код и пытаюсь увидеть фактические значения в ближайшем окне, они обозначаются одинаково:

? SomeSheet.Cells (i, col). Значение

310289286,463803

? SomeOtherSheet.Cells (i, 4) .Value

310289286,463803

Кто-нибудь есть какие-либо идеи?

спасибо!

РЕДАКТИРОВАТЬ: Как предлагалось, но FaneDuru в комментариях, я попытался округлить значения, и хотя я получаю тот же вывод в непосредственном окне, сравнение теперь правильно. Не знаю почему. Спасибо!

1 Ответ

0 голосов
/ 15 января 2020

Если result определено как логическая переменная, значением по умолчанию будет false. Поэтому, если в коде нет другой части, в которой result имеет значение true, он всегда будет возвращать false.

Может быть попробовать что-то вроде этого:

If SomeSheet.Cells(i, col).Value = SomeOtherSheet.Cells(i, 4).Value Then
    result = True
End If

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...