ID非公開

2022/5/15 13:12

33回答

VBAでmonth関数と連番付与についてお伺いします。

画像

Visual Basic114閲覧

ベストアンサー

0
画像
ID非公開

質問者2022/5/18 12:17

仰る通り名前は考慮しません。 添付まで添えていただきありがとうございました。ちゃんと確認し、お陰で思い通りの連番が出来てました。 For n1 = 1 To n0 - 2以降の部分が何を差しているのか今後の参考までに差し支えなければ教えてください。 それから本来のブックには既に20000以上のデータが入っており、C2から最終行までを毎回繰り返すと着いてる連番をもう一度付け直す?ことになって重くならないか心配してます。 もしご教示いただけるなら教えてください。

ThanksImg質問者からのお礼コメント

皆様から頂いたもの全て思い通りに起動され、とても勉強になりました。選びがたいのですが1番細かく教えてくださったので感謝を込めてベストアンサーとさせていただきます。 ありがとうございました。

お礼日時:5/19 7:19

その他の回答(2件)

0

Sub a() 'ループを使用した場合 Dim i As Long For i = 2 To Range("C" & Rows.Count).End(xlUp).Row Range("A" & i).Value = Month(Range("C" & i).Value) Range("B" & i).Value = WorksheetFunction.CountIf(Range(Range("A2"), Range("A" & i)), Range("A" & i)) Next i End Sub Sub b() '数式を設定する場合(値に変換) With Range(Range("C2"), Range("C" & Rows.Count).End(xlUp)) .Offset(0, -2).FormulaR1C1 = "=MONTH(RC[2])" '数式を設定 .Offset(0, -1).FormulaR1C1 = "=COUNTIF(R2C1:RC[-1],RC[-1])" .Offset(0, -2).Value = .Offset(0, -2).Value '数式を値に変換 .Offset(0, -1).Value = .Offset(0, -1).Value End With End Sub

ID非公開

質問者2022/5/18 12:11

ありがとうございました。 どちらも起動してみて思い通りの連番がつきました。

0

Sub Example() Dim r As Range, 月 As Integer, 連番 As Integer For Each r In Range("C2", Cells(Rows.Count, "C").End(xlUp)) If Month(r) = 月 Then 連番 = 連番 + 1 Else 連番 = 1 End If r.Offset(, -1) = 連番 月 = Month(r) Next End Sub

ID非公開

質問者2022/5/18 12:07

ありがとうございます。 お陰様でB列の連番が起動出来ました。 素人調べなので、各変数に何が入ってるのかがいまいちわからなままでございます。