dポイントプレゼントキャンペーン実施中!

Sub test()
Dim i As Integer, n As Integer
n = 1

For i = 2 To 150
If Cells(i, 1) <> Cells(i - 1, 1) Then
Cells(i - 1, 5) = i - n
Cells(i - 1, 6) = Application.WorksheetFunction.Sum(Range("B" & n & ":" & "B" & i - 1))

n = i

End If
Next i
End Sub

上記のマクロですが
Application.WorksheetFunction.Sum(Range("B" & n & ":" & "B" & i - 1))
この部分、もっとスマートに書く方法を教えてください。
Range("B" & n & ":" & "B" & i - 1)って、ちゃんと動きますが、書き方が何か変なような気がするんです。
よくわかってもいないのにすみません。

A 回答 (3件)

こんにちは。

maruru01です。

別に変じゃないと思いますが。
""で括られていて、文字列として指定しているのが変な気がするのでしょうか。
それなら、Cellsプロパティを使用する方法でしょうか。


Application.WorksheetFunction.Sum(Range(Cells(n, 2), Cells(i - 1, 2)))
    • good
    • 0
この回答へのお礼

ありがとうございます!
美しい!これです、まさにこれです。
ほんとうにありがとうございました。

お礼日時:2003/05/20 16:43

No.1さんへ。



R = Range(P)

のところは、

Set R = Range(P)

じゃないとダメじゃないでしょうか。
    • good
    • 0

Dim R as Range


Dim P as String


(中略)

P = "B" & n & ":" & "B" & (i - 1)
R = Range(P)
Cells(i - 1, 6) = Application.WorksheetFunction.Sum(R)

(中略)


っていうのは、いかが?
    • good
    • 0
この回答へのお礼

ありがとうございました。
解決いたしました。

お礼日時:2003/05/20 16:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!