17. juni 2008 - 22:16Der er
3 kommentarer og 1 løsning
VBA Åbne xls fil skjult
Hej
Jeg er i gang med at optimere min kode til et projekt. Koden går ud på at jeg åbner en xls fil og henter data derfra. Jeg bruger i øjeblikket nedenstående kode, men syntes den går for langsom:
Set xlapp = New Excel.Application xlapp.Application.Workbooks.Open FileName:=strdataFil, ReadOnly:=True, Password:="Password"
Hvis jeg fjerner New fra første linie går det meget hurtigere, men så ser jeg arket blive åbnet på min Taskbar, hvilket ikke er så kønt.
Er der mon en metode til at åbne regnearket skjult uden at skulle bruge ovenstående kode?
Ja - uddrag af andet "system": ... dim xlsFil2 ... Private Sub åbnFil2() Set xlsFil2 = CreateObject("Excel.Application") With xlsFil2 .Workbooks.Open sti + "fil2.xls" ' .Visible = True 'hvis det skal være synlig umder test End With End Sub Private Sub lukFil2() xlsFil2.Application.DisplayAlerts = False xlsFil2.Save
xlsFil2.Application.Quit Set xlsFil2 = Nothing End Sub
Der er vel ingen forskel på Set xlapp = New Excel.Application og Set xlsFil2 = CreateObject("Excel.Application")
De starter begge en ny application og er derfor lige langsomme.
I min test tog det cirka 3 sekunder for begge, mens det tager omkring 1 sekund, hvis jeg bare åbner et regneark almindeligt uden at lave et objekt først. det teger 2 sekunder hvis jeg ikke bruger "New", men så kan jeg se regnearket åbne sig i taskbaren.
Jeg fandt ud af, at jeg ændre opsætningen, så Excel ikke viser flere filer på proceslinien - på den måde hold den op med at vise filen der bliver åbnet:
Ved åbning af masterfilen: If Application.ShowWindowsInTaskbar = True Then Application.ShowWindowsInTaskbar = False bolShowWindowsInTaskbar = True End If
Ved hændelsen før luk sætter jeg opsætningen til hvad den var ved åbning: If bolShowWindowsInTaskbar = True Then Application.ShowWindowsInTaskbar = True End If
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.