irek писал(а):просматривал. русский язык исказился. не стал исправлять, ибо не имеет смысла.
Делать нормально всегда имеет смысл
irek писал(а):про табулирование знаю, дело не в красоте пока, а в самой программе. спасибо
Вот именно дело не в красоте, а в самой программе, код которой должен быть как минимум хотя-бы читаем. Именно для лучшей читаемости отступы и были придуманы. Отступы надо делать всегда, тем более если ты его на всеобщее обозрение выкладываешь. В хорошо оформленном коде можно сразу разобраться, а что-бы разобраться в твоем мне например пришлось его сначала приводить в читаемый вид.
irek писал(а):вставляя другую функцию, программа работает.. вообщем хз.
Ты видимо мой пост то ли не дочитал, то ли не знаю что. Я же четко сформулировал причину ошибки. Она возникает из за того что функция Log получает не числовое значение, а Empty. И получается это в следствии того что перемененные не объявлены надлежащим образом. Вобщем прочитай про то, почему необходимо ставить Option Explicit , про это пишется практически во всех советах по VB. И больше вообще никогда! не делай без этой директивы, объяви нормально переменные и все у тебя встанет на свои места.