Автор Тема: Word VBA Макросы: Запись числа в переменную с типом double не отбрасывая после знака нули.  (Прочитано 45 раз)

Оффлайн Rengame113

  • Посетитель форума
  • Сообщений: 84
В тексте файла есть число 252525.00 и оно выделено. Если использовать вот такой макрос, то отбрасываются нули после точки, т.е. число становится не 252525,00, а 252525.
Каком образом можно оставить нули (не отбрасывать их)?

Пробовал Format и FormatNumber не помогло.

Макрос
Sub test()
    Dim Число_С_Точкой As Double
 
    Число_С_Точкой = Replace(Selection.Text, ".", ",") 'Записываем значение и меняем точку на запятую (иначе ошибка)
   
    MsgBox (Число_С_Точкой)
End Sub

Оффлайн Администратор

  • Administrator
  • Сообщений: 1710
У переменной "Число_С_Точкой" тип данных "Double", в такую переменную нельзя записать дробное число, у которого только нули после запятой. Так запрограммировано.
Оформлять данные нужно перед вставкой (куда вы планировали эти данные вставлять).
Или не используйте тип данных "Double", а используйте тип данных "String" или "Variant".

Оффлайн Rengame113

  • Посетитель форума
  • Сообщений: 84
А как быть когда нужно сложить несколько значений, допустим:
252525.00 +252526.00+252527.00?

Оффлайн Администратор

  • Administrator
  • Сообщений: 1710
Концевые нули после запятой не влияют на результат. Если после запятой будет не ноль, то число в переменной с типом данных "Double" будет с запятой. Обрезаются только концевые нули.

Оффлайн Rengame113

  • Посетитель форума
  • Сообщений: 84