|
▼超超初心者 さん:
こんにちは。今日は夏休みで見させていただいていました。
じっくりと読んでください。
シートの使い方はどのようになっていますか、きっちりと動きますが。
A B C D E
1 日付 HDD メモリ 基板 総計
2 2003/02
3
このようなレイアウトでしょうか。
それから、年月の指定の仕方・・・これはシリアルナンバー(1900年1月1日を
1として今日は38562です。この数字を利用していますので、そこの列の
書式の設定を正しくしてください。
A2を選択→右クリック→書式の設定
分類で「ユーザー設定」を選択
種類(T)のところにyyyy/mmとしてください。
A3・・・・A10・・・・全て書式の設定をしてください。
お分かりでしょうか?「書式のコピー/貼り付け」=箒のようなアイコンを使うと便利です。
A2からデータが入っているとしたら、下のコードでいけます。
Sub 抜け月を加え上の行と同じ数値2() ’2にしました
Dim r As Range
For Each r In Range("A2", Range("A65535").End(xlUp)) 'ここをA2に変更
r.Select
If r.Offset(1).Value <> DateSerial(Year(r.Value), Month(r.Value) + 1, Day(r.Value)) Then
r.Offset(1).EntireRow.Insert
r.Offset(1).Value = DateSerial(Year(r.Value), Month(r.Value) + 1, Day(r.Value))
r.Offset(1, 1).Value = r.Offset(, 1).Value
r.Offset(1, 2).Value = r.Offset(, 2).Value
r.Offset(1, 3).Value = r.Offset(, 3).Value
End If
If r.Row = Range("A65536").End(xlUp).Row - 1 Then
Exit Sub
End If
Next
End Sub
このままこのコードをコピーして張り込んで実行してください。
張り込んで、このSubにカーソルをあて、F8を押して、エクセルの画面の
変化を見られると問題なく動いていることが分かります。
月や日、時間は裏でシリアル値に変換されて動かすのが基本です。
因みに、A2 の2003年の2月はシリアル値は37653で
A3 に入った3月は37681です。
年月により1ケ月の日数が異なりますので、DateSerial関数を使います。
以上です。試してみてください。必ず動きます。
|
|