루프에서 개인 데이터 테이블을 여는 방법모든,
나는 합리적으로 간단한 문제가있다. 데이터 테이블을 비공개로 열면 데이터 테이블 이름의 참조를 유지하지 않을 때 테이블이 손실된다는 것을 이해합니다. 그렇다면 데이터 테이블을 루프의 일부로 열 때 데이터 테이블을 어떻게 유지할 것인가? 예 :
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);
); 제목 : Re : 개인 데이터 테이블을 루프에서 여는 방법 @ 제프 _ 퍼킨슨 ,
아시다시피, 나는 창 명령을 사용하는 실수를 보았습니다. 개인 데이터 테이블이기 때문에 새 데이터보기를 만들어야했습니다.
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;
); 제목 : Re : 개인 데이터 테이블을 루프에서 여는 방법 @ 제프 _ 퍼킨슨 ,
그것은 여전히 실패합니다. 정확한 스크립트를 사용했고 데이터 테이블 참조가 목록에 저장되어 있는지 확인했습니다. 그러나 내가 그들을 보이게하려고 할 때, 그것은 여전히 실패합니다.
제목 : Re : 개인 데이터 테이블을 루프에서 여는 방법명확히하기 위해 다른 목록 ( "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);
); 제목 : Re : 개인 데이터 테이블을 루프에서 여는 방법dt 변수를 다시 사용하는 대신 목록에 데이터 테이블 참조를 저장해야합니다.