- ベストアンサー
VBAで値の取得
- VBAでエクセルの値を取得する方法について
- エクセルのシートに計算した値をVBAで入れたい場合の方法
- 値の取得を行うためにVBAのコードを修正する
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>Cells(Cnt, 6).Formula = "=TRUNC(1800 * Cells(Cnt, 2)) + TRUNC(1350 * Cells(Cnt, 3))" は、文字列という事の認識が無い初心者がよくやる事です。 変数名も""で囲って変数として機能しないようにしてしまいます。 Cells(Cnt, 6).Formula = "=TRUNC(1800 * " & Cells(Cnt, 2) & ") + TRUNC(1350 * " & Cells(Cnt, 3) ")" "" で囲んだ部分全てを文字として記入してしまうので、式として必要な部分と値(セルの値)として記入される部分をきちんと認識して記述する必要があります。
その他の回答 (2)
- laputart
- ベストアンサー率34% (288/843)
Sub Macro1() ' Dim LastR As Long LastR = Range("B65536").End(xlUp).Row If IsNumeric(LastR) Then For i = 3 To LastR Range("F" & CStr(i)).Value = Int(1250 * Range("B" & CStr(i)).Value) + Int(1000 * Range("C" & CStr(i)).Value) + Int(1250 * Range("D" & CStr(i)).Value) Next i End If End Sub --------------解説--------------------- 整数部を得る関数は INT(数字) Range(セル).value はセルの値になります。 Cstr(数字) は数字を文字列に変換する関数です
お礼
ありがとうございます。Intは使ったことがなかったので、勉強してみます。
これでどうでしょうか? Sub test01() Dim LastR As Long, Cnt As Long '最終行と行番号 LastR = Range("A65536").End(xlUp).Row For Cnt = 3 To LastR 'B3から最終行まで Cells(Cnt, 6).Formula = "=TRUNC(1800 * " & Cells(Cnt, 2) & ") + TRUNC(1350 * " & Cells(Cnt, 3) & " )" Next End Sub
お礼
ありがとうございます。おかげで思っていたような結果が得られました。
お礼
おっしゃる通りでした。 思っていた結果が得られました。 助かりました。ありがとうございました。