カスタム関数の使用による「名前が解決されていません」エラーこんにちは、
JMP スクリプト内でカスタム関数を定義して使用しようとしています。 それはうまくいきますか? 現時点では、関数(JSload)を呼び出す行に到達すると、ログに次のエラーが表示されます。
名前が解決されていません: 'JSload' のアクセスまたは評価中の JSload、JSload( temp ) /*###*/
関数に文字列「temp」(xlsxファイルの適切なパスを含むファイル名)を渡し、Openコマンドを使用してそのファイルの内容をデータテーブルにインポートしようとしています。 ただし、関数の最初の呼び出しで引っかかっていると思います。 現時点でのスクリプトと関数の機能は次のとおりです。 変数「temp」は正しく作成されているようです (ログ ファイルで確認)。
Open コマンドのコードは、手動で行われた最初のデータ インポート後の「保存スクリプト」から取得されます。
ありがとう、
ジョー
===============================================
For( インデックス 1 = 1,インデックス 1 <= 1, インデックス 1++,
temp = (ファイルパス||ファイルリスト[インデックス1]);
JSload(一時);
);
JSload = Function({temp},
開ける(
温度、
ワークシート( "Sheet1" )、
すべてのシートに使用します( 1 )、
ワークシートを連結( 0 )、
連結列の作成( 0 )、
ワークシート設定(
1、
列ヘッダーあり( 1 )、
ヘッダーの行数( 1 )、
ヘッダーは Row( 1 ) から始まり、
データは行 ( 2 ) から始まります。
データは列 ( 1 ) から始まります。
データは行 ( 0 ) で終了します。
データは列 ( 0 ) で終了します。
レプリケートされたスパン行数( 1 )、
非表示の行を抑制( 1 )、
非表示の列を非表示( 1 )、
空の列を抑制( 1 )、
階層として扱う( 0 )
);
);
Re: 名前カスタム関数の未解決エラー<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />ありがとうエリック。 それがトリックだったんだ!
ジョー
Re: 名前カスタム関数の未解決エラーやあ、ジョー、
実際のところ、変数「temp」の再利用は問題ではないと思います。JMP は「JSload」が見つからないと言っているからです。問題は、関数を呼び出した*後*に関数が定義されていることだと思います。JMP では、関数を呼び出す前に関数を定義する必要があります。「JSload = function({temp},...)」セクションを for ループの前に移動すると、機能すると思います。
また、関数定義の最後に閉じ括弧とセミコロンが欠けているようです。
このバージョンは私にとってはうまくいきます:
ファイルパス = 「c:\users\public\temp\」 ;
ファイルリスト = { 「myTest.xlsx」 };
JSload =関数({温度}、
開ける(
温度、
ワークシート( 「シート1」 )、
すべてのシートに使用( 1 )、
ワークシートを連結する( 0 )、
連結列の作成( 0 )、
ワークシート設定(
1 、
列ヘッダーがあります( 1 )、
ヘッダーの行数( 1 )、
ヘッダーは行から始まります( 1 )、
データは行から始まります( 2 )、
データは列から始まります( 1 )、
データは行で終了( 0 )、
データは列で終わります( 0 )、
レプリケートされたスパン行( 1 )、
非表示の行を抑制( 1 )、
非表示の列を非表示( 1 )、
空の列を抑制( 1 )、
階層として扱う( 0 )
);
);
);
ために(インデックス1 = 1 ,index1 <= 1 、インデックス1++、
temp = (ファイルパス||ファイルリスト[インデックス1]);
JSload(一時);
);
HTH、
エリック
Re: 名前カスタム関数の未解決エラーこんにちは、ジョーさん
問題は、ファイルパスと関数定義の引数に「temp」変数名を使用していることです。 関数ステートメント内の「temp」の 2 つのインスタンスを別の未使用の変数名に置き換えると、スクリプトは機能するはずです。
-ジェリー