So öffnen Sie private Datentabellen in einer SchleifeAlles,
Ich habe ein einigermaßen einfaches Problem. Nach meinem Verständnis verlieren Sie beim Öffnen der Datentabelle als privat die Tabelle, wenn Sie den Verweis auf den Datentabellennamen nicht beibehalten. Wie bleiben also die Datentabellen erhalten, insbesondere wenn Sie sie als Teil einer Schleife öffnen. Für zB:
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);
); Betreff: So öffnen Sie private Datentabellen in einer Schleife @ Jeff_Perkinson .
Wissen Sie was, ich sehe den Fehler. Stattdessen hätte ich mit dem Befehl window eine neue Datenansicht erstellt, da es sich um eine private Datentabelle handelt.
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;
); Betreff: So öffnen Sie private Datentabellen in einer Schleife @ Jeff_Perkinson .
Es versagt immer noch. Ich habe das genaue Skript verwendet und sehe, dass die Datentabellenreferenzen in der Liste gespeichert sind. Wenn ich jedoch versuche, sie sichtbar zu machen, schlägt das immer noch fehl.
Betreff: So öffnen Sie private Datentabellen in einer SchleifeZur Verdeutlichung müssen Sie nicht versuchen, in eine andere Liste (Ihr "OpenDTS") einzufügen. Verwenden Sie eine Liste auf der linken Seite der Open () - Anweisung anstelle von "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);
); Betreff: So öffnen Sie private Datentabellen in einer SchleifeSie müssen Ihre Datentabellenreferenzen in einer Liste speichern, anstatt die Variable dt erneut zu verwenden.