如何在循环中打开私有数据表所有,
我有一个相当简单的问题。我的理解是,当您将数据表打开为私有时,如果不保留数据表名称的引用,则会丢失表。那么,如何保留数据表,尤其是当您将它们作为循环的一部分打开时。例如:
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:如何在循环中打开私有数据表 @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;
); Re:如何在循环中打开私有数据表 @Jeff_Perkinson ,
它仍然失败。 我使用了确切的脚本,我确实看到数据表引用存储在列表中。但是,当我试图让它们可见时,仍然会失败。
Re:如何在循环中打开私有数据表为了澄清,您不需要尝试插入不同的列表(您的“OpenDTS”)。使用Open()语句左侧的列表代替“dt”。
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变量。