Макрос Эксель работает через раз

Автор Посетитель 27.09.2024, 27 сентября 2024, 14:05

Администратор


Посетитель 27.09.2024

Вот. Я там Else вобще убрал. Спасибо.)

Администратор

На листе Проба, в столбце C число выглядит как 1,2, на самом деле это другое число.
В Экселе есть такое понятие IEEE (можете посмотреть в интернете), это когда 2 + 2 не равняется 4, а равняется 4,0000000000001 (что-то типа такого).
В вашем случае имеет место IEEE и в ячейке записано не 1,2, а 1,200000000000001. Как полностью посмотреть часть после запятой я не знаю.

Кто записывал 1,2 в ячейку? Я так понимаю, не вручную с клавиатуры, а возможно двумя способами:
1) протягиванием с помощью автозаполнения;
2) с помощью макроса.

В обоих случаях происходило прибавление шага к числу и не сформировалось нужное число.

Администратор

Можете это проверить так. Перейдите в VBA - View - Immediate Window - вставьте этот код:
print activecell.Value = 1.2

Сначала в Экселе перейдите в ячейку, в которой было 1,2, затем перейдите в VBA, поставьте курсор внутрь Immediate Window - нажмите Enter - будет результат False.
Затем в Экселе вручную напечатайте 1,2 и проделайте то же самое, будет результат True.

Посетитель 27.09.2024

Вот вобще СПАСИБО ОГРОМНОЕ!!!!! После Ваших объяснений решил проблему путем введения знаков > <. Теперь вроде все работает! )))))) Довольный как слон!!!!))))))

Посетитель 27.09.2024

Пришлите письмо на почту пожалуйста. Оно потерялось.

Администратор