Проблемы с назначением значения из ячейки в переменную - PullRequest
0 голосов
/ 04 апреля 2019

по какой-то причине моим переменным присваивается, казалось бы, неверный результат.

public E0m1 as long

Set DD = Workbooks("correct path")
DD.Activate

E0m1 = DD.Range("B36").Value '(cell value is 0.5)
  • ожидаемый результат: E0m1 = 0.5
  • что я получил вместо: E0m1 = 0

1 Ответ

2 голосов
/ 04 апреля 2019

Long Тип данных не поддерживает арифметику с плавающей запятой (десятичные числа)

Если вы хотите сохранить десятичное число (например, 0.5 в переменную), сохраните его либо в

Double может содержать более крупные и точные числа, но, судя по предоставленным вами данным, достаточно Single. Также в качестве дополнительной sidenote:

Если вы хотите объявить переменные, если вы по какой-то причине не хотите сделать их глобальными, лучше объявить их с ключевым словом Dim.

например.

Dim e0m1 as Single
Dim ws as Worksheet: Set ws = Sheets("correct path")
e0m1 = ws.Range("B36")
...