Excel VBAでデータシートから納品日、納品先毎に発注明細を1票にし印刷するマクロを作成中です。
印刷シート(Dim ResulSheet)は罫線等で印刷フォームを作っております。
改ページ時に明細行をクリアして、ヘッダーを書き換える処理を行っております。
クリアする理由はヘッダー情報により明細行数(可変)が異なる為、前情報が残らないようにしております。
次のマクロを実行すると罫線も消えてしまいました。
数値だけクリアすることはできないのでしょうか?
For i = 2 To LastCell If ResultSheet.Range("B3") = DataSheet.Range("E" & i) And _ ResultSheet.Range("B1") = DataSheet.Range("G" & i) Then 'オーダーフォームに明細コピー 'ロット番号 DataSheet.Range("H" & i).Copy ResultSheet.Range("C" & Copy).PasteSpecial '商品名 DataSheet.Range("L" & i).Copy ResultSheet.Range("F" & Copy).PasteSpecial '規格 DataSheet.Range("M" & i).Copy ResultSheet.Range("G" & Copy).PasteSpecial '入数 DataSheet.Range("N" & i).Copy ResultSheet.Range("H" & Copy).PasteSpecial '賞味期限 DataSheet.Range("J" & i).Copy ResultSheet.Range("I" & Copy).PasteSpecial '出荷数(ケース) DataSheet.Range("O" & i).Copy ResultSheet.Range("J" & Copy).PasteSpecial '出荷数(バラ) DataSheet.Range("P" & i).Copy ResultSheet.Range("K" & Copy).PasteSpecial Copy = Copy + 1 'コピー明細改行 Else '印刷 'Out.Activate 'Out.PrintOut Copies:=1, Collate:=True, _ ' IgnorePrintAreas:=False 'ヘッダー情報更新 '納品日 DataSheet.Range("G" & i).Copy ResultSheet.Range("B1").PasteSpecial '納品日先コード DataSheet.Range("E" & i).Copy ResultSheet.Range("B3").PasteSpecial '納品日先 DataSheet.Range("F" & i).Copy ResultSheet.Range("D3").PasteSpecial 'ループ処理1回戻す i = i - 1 'コピー開始明細行リセット Copy = 7 '明細行クリア ResultSheet.Activate Range("C7").Select Range(Selection, Selection.End(xlDown)).Select Selection.ClearContents Range("F7:K7").Select Range(Selection, Selection.End(xlDown)).Select Selection.ClearContents End If Next
回答2件
あなたの回答
tips
プレビュー