クリップボードの列のリストからコリストボックスにデータを入力する方法を探しています。getclipboard()コマンドを試しましたが、返されるリストは列名のリストではないため、このアプローチは失敗します。
背景として、1つのデータテーブルから列名のリストをコピーし(名前は行にリストされています)、コピーした列名のリストを別のデータテーブル分析の分析の入力として使用しています。
分析プラットフォーム(NN)を開いて、X入力ボックスを右クリックすると、列名を貼り付けることができます。


用語を2番目のボックスに表示したいのですが:

したがって、列名をコピーしてスクリプトを実行すると、オプションのボックスで列を選択できるようになります。
アイデアをありがとう!
もっと簡単な方法があるかもしれませんが、以下のスクリプトの変数clip_itemsで始めることができると思います。これにより、クリップボードの各行が取得され、一致する列が検索されます。スクリプトの残りの部分では、データテーブルテーブル内のそれらの列を選択します。このスクリプトは、アドインの一部としてメニューから実行します。
names default to here(1);
dt = current data table();
//Get list of columns in clipboard
clip_input = Get Clipboard();
clip = clip_input;
clip_items = {};
done = 0;
for( i = 1, done == 0 & i < 10000, i++,
show(clip);
If (
N Items(Regex Match(clip,"[\!\r\!\n]")) == 0
,
if(
length(clip) > 0
,
Insert Into( clip_items, clip)
);
done = 1;
,
thisrow = Regex(clip,"(.+?)[\!\r\!\n]","\!\1");
if( length(thisrow) > 0, Insert Into( clip_items, thisrow) ) ;
clip = Regex(clip,"\!\n(.*)","\1");
);
);
if( i > 10000, stop("found more than 10000 variables"));
col_names = dt << Get Column Names( String );
For( i = 1, i <= N Items( col_names ), i++,
if( contains( clip_items, col_names[i] ),
Column( dt, i ) << Set Selected ( 1 );,
Column( dt, i ) << Set Selected( 0 );,
)
);それは本当にうまくいきました!
私はこれにあなたのコードを追加しました、そして私は行ってもいいです:
selCols = dt << Get selected Columns( String );
obj2=new window("Reponse Variable",
<<MODAL></MODAL>