#vba #excel
#vba #excel
Вопрос:
Я пытаюсь разделить значение, полученное из ячеек
Dim Sk as integer, P as integer
'Cells(5, 4) = 9
'Cells(5, 14) = 2
Sk = Cells(5, 4) - Cells(5, 14)
' Sk= 7
P = Sk / Cells(5, "D") ' SK = 7 ' Cells(5, "D") = 15
' P = 0
Но Excel всегда выдает мне P = 0, если я изменяю divide / на несколько * все в порядке
Excel хочет быть P как вариант, почему это происходит?
Комментарии:
1. Он возвращает 0, потому что ответ является десятичным (целочисленный тип содержит только целые числа). Объявите P как либо
Variant
илиSingle
, либоDouble
, которое содержит десятичные дроби.2. Выберите Вариант, если вы не знаете, что означают плавающие числа: P
3. @mehow лучшим советом было бы узнать , что означает плавающая точка, а не применять плохую практику
Ответ №1:
Вместо объявления as SK
как Integer
объявить его как Double
Комментарии:
1. Хотя ответ действительно решает проблему, было бы намного лучше, если бы вы могли объяснить, почему это решение будет работать.
2. Целое число не обрабатывает десятичный тип, поэтому каждое деление меньше 1 даст 0 в качестве результата. Если вы используете Double как тип, вы получите действительные числа (десятичные дроби и все)