• 締切済み

マクロでテーターを転記した時の空白なしに

いつもお世話になります。 WINDOWS7 EXCEL2010 です。 添付図で説明させていただきますと、 右側の「請求書」のL5:O9 のデーターを左の「売上表」に下記のマクロにて転記します。 元の値(請求書 L5:O9)の範囲内のデーターが1行 2行 3行 4行は空白行が又は5行の場合はすべてが埋まったりします。 この場合5行の時はいいのですが、例えばデーターが3行の時は添付図で言いますと5の行6の行のように2行が空白になります。 下記のマクロの構文をどういう具合にすればいいか御指導願えませんでしょうか。 参考に、 L5 =IF(B15="","",B15) M5 =IF(L5="","",$A$2) N5 =IF(L5="","",C15) O5 =IF(L5="","",H15) ※ 下記のようにしたかったのですがそれ程詳しくないのと時間がないので上記のような方法になり少し遠回りです。 ‘Range("B1").Select ‘ActiveCell.Offset(1, 0).Activate マクロです。 Sub 売上表へ転記() Dim ID As Long Dim 納品日 As Date ID = Range("M5").Value 日付 = Range("L5").Value Range("L5:O9").Copy Sheets("売上表").Activate Range("A65536").End(xlUp).Activate '販売記録A2がアクティブセル(タイトル行) ActiveCell.Offset(1, 0).Activate ActiveCell.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False 'A2:E2 ActiveCell.Offset(0, 4).Activate 'C2が空白 Do Until ActiveCell.Offset(2, 0).Value = "" ActiveCell.Value = ID 'G2 ActiveCell.Offset(0, 0).Value = 納品日 'A3 ActiveCell.Offset(1, 0).Activate Loop End Sub

みんなの回答

  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.1

行数をカウントすれば良いのではないでしょうか? 例えば、LN = 1と、最初にしておいて コピーすべきデータがあるたびに、 LN = LN + 1 として、行数をカウントして結果として1行ずつ下げて行くのです。 「Cells(LN, ~)」 コピーすべきデータが無いときは、If文などで LN = LN + 1を通らないようにしておけば 空白行はできないと思います。 具体的なプログラムで提示できなくて申し訳ございません。

dorasuke
質問者

お礼

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

dorasuke
質問者

補足

御指導いただきありがとうございます。 これを投稿した時、 「混雑しているのでしばらく待って再度投稿してください」 というメッセージが出ましたので再投稿したところこのように ダブりました。 済みませんでした。 削除もできず困っていました。

関連するQ&A

専門家に質問してみよう