Avatar billede micaud Mester
19. februar 2014 - 21:05 Der er 2 kommentarer og
1 løsning

Excel lukker ikke ned i task manager!!!

Hej - håber virkelig I kan hjælpe her.

Jeg kører en masse makroer i en masse Excel ark. Jeg har alt til at kører via task sceduler, hvor nogle kører hver dag, nogle hver mandag eller onsdag osv.

En af min kørsler åbner 11 forskellige regneark en efter en og opdatere dem og lukker igen via task scheduler.

Min VBA kode ser således ud:

Private Sub Workbook_Open()
ActiveWorkbook.Author = "MV"
    Application.Calculation = xlManual

Set pvtTable = Worksheets("Lagerdage").Range("a10").PivotTable
    If Format(pvtTable.RefreshDate, "short date") <> Format(Date, "short date") Then
Worksheets("Lagerdage").PivotTables("Pivottabel1").PivotCache.Refresh
Worksheets("Lagerdage").PivotTables("Pivottabel3").PivotCache.Refresh
Worksheets("Lagerdage").Range("C2") = "Updated on " & Format(pvtTable.RefreshDate, "dd-MM-yy kl. hh:mm:ss") & " by " & pvtTable.RefreshName
Call Markér
Range("BB3").Select
Application.Calculation = xlAutomatic
    ThisWorkbook.Save
    End If
    Sheets("Lagerdage").ExportAsFixedFormat Type:=xlTypePDF, Filename:="E:\Opgaver\Burberry not sold in 60 days.pdf"
    Set pvtTable = Nothing
'If Dir("E:\Opgaver\Scheduler.pdf") <> "" Then
If Time < TimeValue("07:00:00") Then
    ThisWorkbook.Saved = True
    Application.DisplayAlerts = False
    Application.Quit
End If
End Sub


Koden virker upåklageligt, men når jeg benytter følgende i koden:

If Dir("E:\Opgaver\Scheduler.pdf") <> "" Then

så lukker Excel ikke i Task Manager, og Task scheduler går således ikke videre, før Excel er lukket. Jeg skal altså manuelt ind i Task Manager og "End procees" Excel.exe

Det underlige er, at koden har i månedsvis kørt uden problemer og lukket Excel helt ned, når jeg bruger følgende linje i koden:

If Time < TimeValue("07:00:00") Then

Nu efter jeg har rodet med det, så virker ingen af linjer, og Excel lukker ikke ned - jeg har læst mig frem til, at det er noget med nogle variabler, objektor, som jeg ikke for 0-stillet inden lukning af Excel, men jeg ved ikke, hvordan jeg løser det.

Håber I forstår ovenstående.

Grunden til at jeg vil skifte linjen fra:

If Time < TimeValue("07:00:00") Then

til:

If Dir("E:\Opgaver\Scheduler.pdf") <> "" Then

er, at jeg gerne vil have Excel "opdager" at den er kørt fra Task Scheduler, således kører jeg en oprettelse af filen "Scheduler.pdf" først via Task Scheduler og sletter den igen, når alle de 11 regneark er kørt via Task Scheduler. Herved kan jeg åbner filerne manuelt og ikke være afhængig af en timer og tidspunkt på dagen.

Håber det giver mening.

Tak på forhånd

Mange hilsner Michael.
Avatar billede supertekst Ekspert
21. februar 2014 - 15:42 #1
Kunne det ikke være at:
      If Dir("E:\Opgaver\Scheduler.pdf") <> "" Then
ikke fungere efter hensigten?

Har testet noget tilsvarende og det udtryk tager den "falske" udgang.

Prøv evt. med
      If Dir("E:\Opgaver\Scheduler*") <> "" Then
Avatar billede micaud Mester
21. februar 2014 - 17:50 #2
Nej den linje fungere helt fint.

Jeg har generelt fundet ud af, at jeg blot skal anfører følgende til slut i min kode:

    ThisWorkbook.save (Denne havde jeg ikke før)
    Application.DisplayAlerts = False
    Application.Quit

Jeg går udfra, at "save" 0-stiller variablerne, og dermed fylder Excel.exe ikke i task manager ??

Jeg lukker den her.
Avatar billede micaud Mester
21. februar 2014 - 17:50 #3
Lukket
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester