プライベートデータテーブルをループで開く方法すべて、
かなり単純な問題があります。データテーブルを非公開として開くと、データテーブル名の参照を保持していないとテーブルが失われることを理解しています。それでは、特にループの一部としてデータテーブルを開いているときに、どのようにデータテーブルを保持するのですか。例えば:
FilePath = "C:\Test.xlsx";
SheetsList = Get Excel Worksheets(FilePath);
OpenDts = {};
for(i = 1, i <= N Items(SheetsList), i++,
dt = Open(FilePath,
"Private",
Worksheets(SheetsList[i]),
Use for all sheets( 0 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
Insert Into(OpenDts,"Data Table(" || SheetsList[i] || ")");
);
Show(SheetsList);
Show(OpenDts);
<BR />// This fails
for(i = 1, i <= N Items(OpenDts), i++,
OpenDts[i] << Show Window(1);
); 再:どのようにループでプライベートデータテーブルを開く @Jeff_Perkinson 、
あなたは何を知っています、私は間違いを見ます、代わりにwindowコマンドを使用します、それが私的なデータテーブルであるので私は新しいデータビューを作成するべきでした。
FilePath = "C:\Test.xlsx";
SheetsList = Get Excel Worksheets(FilePath);
OpenDts = {};
for(i = 1, i <= N Items(SheetsList), i++,
OpenDts[i] = Open(FilePath,
"Private",
Worksheets(SheetsList[i]),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
// Insert Into(OpenDts,"Data Table(" || SheetsList[i] || ")");
);
Show(SheetsList);
Show(OpenDts);
// This works
for(i = 1, i <= N Items(OpenDts), i++,
OpenDts[i] << New Data View;
); 再:どのようにループでプライベートデータテーブルを開く @Jeff_Perkinson 、
それでも失敗します。 正確なスクリプトを使用しましたが、データテーブル参照がリストに格納されていることがわかります。しかし、それらを見えるようにしようとすると、それでも失敗します。
再:どのようにループでプライベートデータテーブルを開く明確にするために、あなたは別のリスト(あなたの "OpenDTS")に挿入しようとする必要はありません。"dt"の代わりに、Open()ステートメントの左側にあるリストを使用してください。
FilePath = "~/Desktop/Test.xlsx";
SheetsList = Get Excel Worksheets(FilePath);
OpenDts = {};
for(i = 1, i <= N Items(SheetsList), i++,
OpenDts[i] = Open(FilePath,
"Private",
Worksheets(SheetsList[i]),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
// Insert Into(OpenDts,"Data Table(" || SheetsList[i] || ")");
);
Show(SheetsList);
Show(OpenDts);
// This fails
for(i = 1, i <= N Items(OpenDts), i++,
OpenDts[i] << Show Window(1);
); 再:どのようにループでプライベートデータテーブルを開くdt変数を再利用するのではなく、データテーブル参照をリストに格納する必要があります。