Excelワークシートが存在するかどうかを確認しますExcelから特定のワークシートを開こうとするJMPスクリプトを書きたいと思います。
問題は、要求されたワークシートが含まれていないExcelファイルの1つである場合、JMPスクリプトがクラッシュすることです。
どうすればそれを防ぐことができますか? (つまり、要求されたワークシートが含まれているかどうか、Excelを開く前に確認してください。)
これは私のコードです:
add_to_DB = function({file_path、sheet、header_line、data_line}、
new_dt = Open(
ファイルパス、
ワークシート(シート)、
ワークシート設定(
ヘッダーは行から始まります(header_line)、
データは行から始まります(data_line))
);
.....。
再:Excelワークシートが存在するかどうかを確認しますExcelブック内に存在するシート名のリストを検索する場合は、次のようなものを使用できます。
sheetList = Get Excel Worksheets( "$ SAMPLE_IMPORT_DATA \ Team Results.xlsx");
Show(sheetList);
ブライアン・コルコラン
JMP開発
再:Excelワークシートが存在するかどうかを確認しますそれはうまくいきます。
ありがとう
再:Excelワークシートが存在するかどうかを確認します何かあったとは思えないクラッシュ。
スクリプトがExcelブック内の特定のシートの存在を確認したり、他の外部ファイルタイプの特定のコンテンツを確認したりする方法がわかりません。 したがって、ソリューションは機能しません。
あなたのようなエラー状態は、実生活で常に発生します。 スクリプトでそれらを処理する方法があります。 JSLをもう学びましたか? あなたは読むべきですヘルプ>>本>>スクリプトガイド。 現在のバージョンの第8章はカバーしていますプログラミング方法エラー処理など。
目的のシートが存在するときにコードが機能することを確認しますか?
1つの方法は、Open()関数が返すものに注意を払うことです。 ログには何が返されますか? 見ましたか? 結果を変数に格納してから、成功したかどうかをテストできます。
または、組み込みのエラー処理メカニズムを使用して、エラー状態をトラップすることもできます。 あなたの場合、このメカニズムは次の例のように機能します。
Try(
new_dt = Open(
file_path,
Worksheets( sheet ),
Worksheet Settings( Headers Start on Row( header_line ), Data Starts on Row( data_line ) )
),
// code in case Open() fails
);;
// code in case Open() succeeds