私は、Excel にデータを自動的に入力し、それを PDF としてエクスポートする Python スクリプトを作成しています。実行するたびに、別のソフトウェアから出力されたデータで満たされた 5 つの新しい Excel シートが作成され、そこに書き込まれます。これらのシートをシート b、c、d、e、f と考えてください。シート A は、これらの他のシートからデータを呼び出すシートです。
Excel ワークブックにシート A だけを残し、そのセルにたとえば '=sheetB!H4' を残しておきたいと思います。次に、Python スクリプトを実行すると、シート B が作成され、シート A が呼び出すことができるデータが入力されます。問題は、これらのシート BF を削除すると、メイン シート A の数式も削除されることです。メイン シートだけを残し、シート A の数式を他のシートに呼び出すようにすることは可能ですか。
わかりにくくて申し訳ありません。ご質問があればお知らせください。よろしくお願いします。
答え1
INDIRECT を使用する:
=INDIRECT("sheetB!H4")
これにより、シートが削除されてもシート参照が保持されます。その後、同じ名前で新しいシートを配置すると、正しく解決されます。
欠点は、INDIRECT は不安定で、Excel が変更されるたびに計算が行われることです。そのため、ページをロードしている間は自動計算をオフにし、ロード後にオンに戻してください。