Не соображу, где собака зарыта? - VBA
Формулировка задачи:
Всем привет.
Никак не соображу в чем дело... помогите разобраться!
в Exel писал макрос с вычислениями площади, периметра и прочего...
при вычислении двух TextBox'ов - значение третьего TextBox'а принимало результат с ЗАПЯТОЙ (плавающей точкой), (например "0,35") далее программа считала CDbl(TextBox) как число и продолжала работать.
но после закрытия файла Exel и открытия его снова, при вычислении тех же двух TextBox'ов - значение третьего TextBox'а стало принимать результат с ТОЧКОЙ (плавающей), (например "0.35") далее программа уже не воспринимает CDbl(TextBox) как число, а считает его текстом и соответственно выдает ошибку 13 "<Type mismatch>"...
пробовал менять раскладку (русский,английский) - не помогает
в настройках, разделительный знак - запятая.
кстати, после долгих часов исправлений, ковыряний и прочих модификаций в течении дня, код снова стал воспринимать значение TextBox'а с ЗАПЯТОЙ, но опять же после закрытия/открытия файла всё снова "сломалось".
почему так происходит? объясните пожалуйста
Понимаю, что проще было объявить переменные нужного типа и работать с ними, но в процессе обучения программа уже была написана и была полностью работоспособна (до закрытия).
Теперь чувствую придётся её переписывать используя переменные
но вдруг есть способ восстановить её работоспособность..
да и просто интересно, голову ломаю, ПОЧЕМУ ТАК???
подскажите добрые люди, уважаемые ГУРУ, скорее всего я не первый с такой проблемой
Решение задачи: «Не соображу, где собака зарыта?»
textual
Листинг программы
Private Sub CommandButton1_Click() Dim AreaTb As Double, LengthTb As Double, WidthTb As Double WidthTb = MyVal(TextBox1.Text) LengthTb = MyVal(TextBox2.Text) AreaTb = (WidthTb * LengthTb) / 10000# End Sub Private Function MyVal(ByVal s As String) As Double MyVal = Val(Replace(s, ",", ".")) End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д