0

他のワークブックから取得したデータ用に Excel で標準化されたフォームを作成しようとしています。

別紙(データシート)のデータをもとに帳票(レポートシート)を自動生成したい。これは、複数のワークブックから個々の情報を取得するスクリプトを作成するよりも簡単だと思います。

私の問題は、レコード (行) の数が異なることです。一部のレポートでは 20 行、一部は 8 行などになるため、データ シートのセルをレポート シートに単純にマップすることはできません。

これを達成するための最も簡単な方法は何でしょうか? データシートの行数を確認し、必要な事前定義フィールドのみを選択してレポートシートに対応する番号を作成するマクロを作成する方法に行き詰まっています。

これは Access で簡単に実行できることはわかっていますが、Access を持っていません。

入力していただきありがとうございます。

4

1 に答える 1

0

まず、データ シートと、必要なデータを適切な形式で表示する別のレポート シートを用意することで、正しい考えが得られます。

「データ シートのセルをレポート シートに単純にマップすることはできません。レポートによっては 20 行、8 行などになるからです。」

これが何を意味するのかよくわかりませんが、データ シートの行のサイズが増減する可能性があると言っているのですか? それとも、エンド ユーザーがレポートで必要な行を選択できるようにしたいということですか? つまり、レポートに表示する行を決定するものは何ですか?

これとは別に、最初にセル値のみを操作する必要があります。このようにして、セル値をレポート シートにコピーすると、レポート シートのすべての書式が保持されます。

データの転送に関しては、上記の私の質問に対する回答に応じて、vba を使用してデータを転送する方法がいくつかあります。

  • 条件に基づいて行を高度にフィルタリングします (別の場所へのコピーを使用)
  • ユーザーが選択したすべての行をコピーします (ループ、For Each Row などを使用する必要はありません)
  • ユーザーが必要な行を入力するユーザー入力ボックスに基づいて行をコピーします。

すべての列をコピーしてから、不要な列を非表示にすることをお勧めします。

Worksheets("Report").Range("B:B,D:E").EntireColumn.Hidden = True
于 2012-04-19T05:44:11.230 に答える