[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『特定の列に入力があるページのみ印刷する方法』(じゅん)
Aというファイルの"抽出先"というシートに他のファイルより必要項目を抽出して張り付け印刷するマクロを作成しました。(日によって抽出するデータ量が異なります)
必要項目だけを貼り付けたページのみを印刷したいのですが、A列の100まで数式を入力しているので、その数式が入力されている全てのページが印刷されてしまいます。
そこで、抽出先シートのB列にデータが入っているページのみ印刷したいのですが、以下のVBAでは上手くできません。
Sub 必要ページのみ印刷()
Dim ws As Worksheet For Each ws In Worksheets("データ抽出先") If IsNumeric(ws.Range("B1:B100")) Then ws.PrintOut Next End Sub
お力添え宜しくお願いします。
< 使用 Excel:Excel2007、使用 OS:WindowsXP >
よくわかりませんが、そもそも
For Each ws In Worksheets("データ抽出先")
Worksheets("データ抽出先") というものはありません。記述するなら Worksheet("データ抽出先") で、そこからセルを取り出したいなら、取り出す変数(コードでは ws)はRange型変数でなければいけません。
ところで、1ページ目はすべて数式による空白、なので1ページ目は印刷したくないということですか?
で、A列の数式に与えている参照セルがB列で、そこに数字が入っていればA列に値が入るということでしょうか?
(β) 2015/07/01(水) 07:18
要件が不明なところもありますが、いずれにしても、改ページを調べて、そのページの内容をチェックして判断するのは 可能ですけど、結構コードが面倒になります。
ちょっと、横着ですが、以下でよろしいのでは?
Sub Test() Dim w As Variant
With Sheets("データ抽出先").UsedRange w = .Formula .Value = .Value .Parent.PrintOut .Value = w End With
End Sub
(β) 2015/07/01(水) 07:58
私がアップしたコードでは、数式が入って""になっているところは無視されると思うのですが 印刷されてしまいましたか?
(β) 2015/07/02(木) 17:18
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.