Excel vba как разделить?

#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 как тип, вы получите действительные числа (десятичные дроби и все)