2017-11-20 2 views
0

私は人間の身長と体重を入力して、それぞれをメートルとキログラムに変換し、人のBMI。私はコンバージョンに取り組んできましたが、ロジックはシンプルで機能していますが、セルの範囲を指定することはできず、このエラーが発生し続けることはありません。実行時エラー '1004' - セルの範囲を指定することができません

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 


Sub calc_BMI() 

'convert height in inches to metres 
Range("Sheet1!C7") = ((Range("Sheet1!C4") * InchesInFeet * CmsInInch) + (Range("Sheet1!C5") * CmsInInch))/100 

'convert stones and pounds to kilograms 
Sheets("Sheet1").Range("E10:E") = ((Sheets("Sheet1").Range("C10:C") * PoundsInStone * KgRate) + (Sheets("Sheet1").Range("D10:D") * KgRate)) 

End Sub 
+0

"E10:E" は範囲ではありませんもレンジ( "C10:C")である:&LASTROW – QHarr

+0

はそれがレンジのようなもの( "C C10" である必要があります)?全範囲の参照は、例えば以下のようになるはずです。範囲( "C10:C15") – QHarr

+1

@QHarr - '.Range(" D10:D ")'を忘れないでください。 – Jeeped

答えて

0

おそらく:

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 


Sub calc_BMI() 
    Dim N As Long, i As Long 
    With Sheets("Sheet1") 
     N = .Cells(Rows.Count, "C").End(xlUp).Row 
     'convert height in inches to metres 
     .Range("C7") = ((.Range("C4") * InchesInFeet * CmsInInch) + (.Range("C5") * CmsInInch))/100 

     'convert stones and pounds to kilograms 
     For i = 10 To N 
      .Range("E" & i) = ((.Range("C" & i) * PoundsInStone * KgRate) + (.Range("D" & i) * KgRate)) 
     Next i 
    End With 
End Sub 
関連する問題