26. januar 2005 - 16:18Der er
10 kommentarer og 1 løsning
Hvordan holder man pause i en makro?
Jeg har en lavet en makro i et regneark, som åbner et andet regneark, der opdaterer nogle kurser over nettet. Makroen skal så gemme regnearket og lukke det, når kurserne er hentet. Det tager ca. 10 sekunder at hente kurserne fra arket er åbnet.
Mit problem er, at jeg ikke vil gemme arket og lukke det, før alle kurserne er opdateret. Jeg har prøvet at lave en "timer" på 20 sekunder, men den fryser det hele, så der ikke hentes kurser.
Jeg kunne godt tænke mig noget ventetid uden at stoppe kursnedhentningen (som foregår via et programlink til Bloomberg).
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
her er en metode fordelt på 2 makro og en fælles variabel
Dim wb As Workbook
Sub test1() Set wb = Workbooks.Open("d:\eb1.xls") wb.ActiveSheet.Range("A3").QueryTable.Refresh Application.OnTime Now + TimeValue("00:00:20"), "CloseWB" End Sub
If (Diff > TimeValue("0:00:05") And RunMacro) Then LastTime = Now cmdSend_Click Application.OnTime Now + TimeValue("00:00:30"), "Ark1.Start" End If
Macroen hvor jeg anvender den hedder Start (i Ark1). Det der sker er, at macroen kalder sig selv efter tiden Now+TimeValue(00:00:30"). Her kan du så indsætte din tid i stedet for mine 30 sekunder.
Forhåbentlig kan du bruge dette ved lidt modifikation ?
Jeg kigger på sagerne i dag. Jeg er nybegynder, så det tager noget tid.
Jeg kan dog se, jeg har formuleret mig lidt forkert. Makroen, som skal sende gemmemakroen i venteposition i 20 sekunder, ligger nemlig i samme excelark (nemlig ark2), men det finder jeg nok ud af...
Jeg kan ikke få det til at køre. Det skyldes sikkert, at jeg a) er begynder og b) jeg forklarede problemet lidt dårligt. Hvis vi nu kigger på nedenstående meget simple makroer. Så skal makro 1 konstrueres, så makro2 starter 20 sekunder senere. Hvad skal ændres/laves i makro1, for at makro 2 starter? Jeg prøvede at kopiere lidt af tidligere vist kode.
Sub Makro1() If (Diff > TimeValue("0:00:05") And RunMacro) Then LastTime = Now Application.OnTime Now + TimeValue("00:00:30"), "Makro2" End If End Sub
Sub Makro2() Range("A1").Select ActiveCell.FormulaR1C1 = "klar" End Sub
Dog ikke med funktionen timer eller pause, da de fryser min kursnedtagning... Application.ontime ser umiddelbart god ud, men i mit eksempel må noget være galt?
Sub test1() Set wb = thisworkbook wb.Sheets("MitArkNavn").Range("A3").QueryTable.Refresh Application.OnTime Now + TimeValue("00:00:20"), "ShowReady" End Sub
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.