Добрый день! Выполняю математическое действие с % и обычным числом и сравниваю с результатом, в макросе пишет ложь, а проверяю формулой - там истина. Подскажите, где я ошибся?
(Прошу прощения, почему-то фал не приложился с 1 раза)
Добрый день! Выполняю математическое действие с % и обычным числом и сравниваю с результатом, в макросе пишет ложь, а проверяю формулой - там истина. Подскажите, где я ошибся?
(Прошу прощения, почему-то фал не приложился с 1 раза)lFJl
Запутано у Вас как-то все. Не стал сильно разбираться, одно ясно - у Вас есть переменная vern1, а в 45-й строке она почему-то превращается в vern1_ (с нижним подчеркиванием). Аналогично и с vern2. Чтобы избежать подобных неприятностей, можно использовать перед кодом (в первой строке модуля) волшебные слова Option Explicit. Они будут ставиться автоматически (в новый модуль), если Вы поставите галку в Туулс - Опшнс - Рекуире Вариабл Декларейшн
А вообще-то, оператор SendKeys "{DOWN}" вполне можно обрабатывать циклом. Только вот не совсем ясно, что же Вы хотите.
Запутано у Вас как-то все. Не стал сильно разбираться, одно ясно - у Вас есть переменная vern1, а в 45-й строке она почему-то превращается в vern1_ (с нижним подчеркиванием). Аналогично и с vern2. Чтобы избежать подобных неприятностей, можно использовать перед кодом (в первой строке модуля) волшебные слова Option Explicit. Они будут ставиться автоматически (в новый модуль), если Вы поставите галку в Туулс - Опшнс - Рекуире Вариабл Декларейшн
А вообще-то, оператор SendKeys "{DOWN}" вполне можно обрабатывать циклом. Только вот не совсем ясно, что же Вы хотите._Boroda_
_Boroda_, На счет нижнего подчеркивания - я просто пробовал несколько вариантов формул, перед отправкой на форум, и видимо не все обратно вернул. Оператор SendKeys использую, потому что у меня большая таблица, она фильтруется, по определенному значению, и мне нужно пробежаться по полученным значениям, как это сделать по другому, я увы не знаю, но если подскажите, я бы рад был отказаться от этого оператора, ибо периодически num lock отключает, что при работе в excel'е не совсем удобно :) На счет Option Explicit, спасибо, впредь буду использовать, не приходилось сталкиваться, попробовал, оказалось удобно:) Переменные объявил(понимаю, что их нужно возможно объявлять как- то по другому, но пока мои знания на этом заканчиваются:)) Файл прикрепил, в чем же все таки проблема?
_Boroda_, На счет нижнего подчеркивания - я просто пробовал несколько вариантов формул, перед отправкой на форум, и видимо не все обратно вернул. Оператор SendKeys использую, потому что у меня большая таблица, она фильтруется, по определенному значению, и мне нужно пробежаться по полученным значениям, как это сделать по другому, я увы не знаю, но если подскажите, я бы рад был отказаться от этого оператора, ибо периодически num lock отключает, что при работе в excel'е не совсем удобно :) На счет Option Explicit, спасибо, впредь буду использовать, не приходилось сталкиваться, попробовал, оказалось удобно:) Переменные объявил(понимаю, что их нужно возможно объявлять как- то по другому, но пока мои знания на этом заканчиваются:)) Файл прикрепил, в чем же все таки проблема?lFJl
[/vba] PS = vern1, vern2 уже заранее перемножены на 100 Так вот макрос говорит false. И тут я не понимаю, в чем подвох? При выполнении макроса сделал вывод результатов и один из результатов "33 / 33 / False", хотя 33=33 мне кажется!
Матраскин, Привет, Ну только что проверил, ST1 и ST2 меняются! Вопрос в том, почему я сделал формулу в ячейке:
Код
=J3 * 100 - K3 + ((K4 - K3) * 10) = J4 * 100
И она истина А вот код в макросе аналогичен формуле [vba]
[/vba] PS = vern1, vern2 уже заранее перемножены на 100 Так вот макрос говорит false. И тут я не понимаю, в чем подвох? При выполнении макроса сделал вывод результатов и один из результатов "33 / 33 / False", хотя 33=33 мне кажется!lFJl
[/vba] === Если Вы выше MsgBox напишете что-то типа [vba]
Код
qq = vern1 - sterv1 + ((sterv2 - sterv1) * 10) aa = vern2 bb = qq - aa
[/vba]и посмотрите на значение переменной bb, то увидите, что она равна 7,105427357601E-15 - это очень близко к 0, но не ноль Почитать можно здесь https://support.microsoft.com/ru-ru/kb/78113
У Вас там округление шалит. Вот так попробуйте. [vba]
Если проходить код через F8, то да, не меняются. Дело в том, что SendKeys, согласно справке, "Отправляет один или несколько кодов клавиш в активное окно ...". Когда Вы проходите макрос по F8, то активным у Вас является окно VBA, а когда Вы запускаете макрос из Excel - активен Excel.
Если проходить код через F8, то да, не меняются. Дело в том, что SendKeys, согласно справке, "Отправляет один или несколько кодов клавиш в активное окно ...". Когда Вы проходите макрос по F8, то активным у Вас является окно VBA, а когда Вы запускаете макрос из Excel - активен Excel._Boroda_