У меня есть 3 функции:
- Один преобразует высоту в футах и дюймах в метры.
- Человек переводит вес в камнях и килограммах в килограммы.
- Каждый рассчитывает ИМТ путем деления веса на квадрат роста.
Проблема в том, что мои функции читают значения из точных ячеек и помещают вычисленные значения в точные ячейки, что означает, что яне могу повторить вычисления для каждой строки ниже.
Смотрите этот скриншот:
![BMI Calculator Data](https://i.stack.imgur.com/8BMPX.png)
Это мой код:
Option Explicit
Const KgRate As Double = 0.45359237 'number of kg in one pound
Const PoundsInStone As Integer = 14 'number of pounds in one stone
Const InchesInFeet As Integer = 12 'number of inches in one foot
Const CmsInInch As Double = 2.54 'number of centimetres in an inch
Public weightInKilograms As Double
Public finalHeight As Double
**' FUNCTION 1**
Public Function heightInMetres()
Dim numberOfFeet As Integer
Dim numberOfInches As Integer
Dim heightInInches As Integer
Dim heightInCms As Integer
numberOfFeet = Range("C4").Value
numberOfInches = Range("C5").Value
heightInInches = (numberOfFeet * InchesInFeet) + (numberOfInches)
heightInCms = heightInInches * CmsInInch
finalHeight = heightInCms / 100
Range("C7") = finalHeight
End Function
**' FUNCTION 2**
Public Function weightInKilos()
Dim stonesEntered As Integer
Dim poundsEntered As Double
Dim stonesToPounds As Double
stonesEntered = Range("C10").Value
poundsEntered = Range("D10").Value
stonesToPounds = stonesEntered * PoundsInStone
weightInKilograms = ((stonesToPounds + poundsEntered) * KgRate)
Range("E10") = weightInKilograms
End Function
**' FUNCTION 3**
Public Function calculateBMI()
Dim BMI As Double
BMI = weightInKilograms / (finalHeight ^ 2)
Range("F10") = BMI
End Function
**' MAIN PROCEDURE**
Public Sub BMICalculator()
heightInMetres
weightInKilos
calculateBMI
End Sub
1) Какой самый простой способ повторить вычисления веса и ИМТ для 3 строк ниже недели 1 (которая является строкой 10 в Excel)?
2)Можно ли (просто) выполнять код непрерывно, например, как только я обновлю ячейки роста и веса, вычисления будут переделаны?
3) Если есть какие-либо (простые) улучшения кода, которые вы можетепредложить, пожалуйста, сделайте.: -)
Заранее спасибо,
Пит