2019年11月5日火曜日

可動範囲への印刷設定アドバンス

このエントリの続きです。

設定したい範囲のデータ途中に空白行があるときは、COUNT/COUNTAだとどうしても実際の最終行とズレが出てしまい特に行数が多いときに必要な範囲に設定されないケースが出てきます。これを防ぐには配列数式を使うしかないようです。もしくはVBAで設定するしかないんですが、ワークシート関数だけで完結したいじゃないですかやっぱりぃぃ。

と言うわけでその最終行の出し方。

MAX(INDEX((LEN(列)>0)*ROW(列),0))

なんですけど、これを

=OFFSET(範囲,0,0,MAX(INDEX((LEN()>0)*ROW(),0)),)

と設定して印刷プレビュー→ページをめくると…メモリ不足で落ちるんです…。

ま、うちの職場の環境ではと言うことではあるんですけど、i3・3GBメモリのマシンなので、大体どこもおんなじくらいか下手すりゃそれ以下ですよね事務系なんて。
でこれはアカンということで、印刷範囲外のセルに最初の数式を書き、そこを4番目の引数に指定しました。これでひとまず安心です。

おまけ:VBA限定ですが、最終行だけならUsedRange.Rows.Countプロパティでも取得できます。ただし書式設定していないことが条件。…事実上使えない知識ですね…。