Jag har ett makro i en delad arbetsbok som gör ett flertal ändringar i dokumentet. Makrot körs snabbt i en arbetsbok som inte är delad. I en delad arbetsbok blir makrot däremot mycket långsamt. Det beror på, har ingen vana av delade arbetsböcker, men i princip så måste man ju spara alla ändringar. Genom att i makrot samla ihop celler som ska ändras till ett Range-objekt har jag lyckats minimera antalet unika ändringar som sparas i ändringsloggen. Detta gör att det går något snabbare men fortfarande långsamt. Tyvärr har jag ännu inte hittat något bra alternativ, men det finns några grejer man allmänt kan göra som snabbar upp programmet; Jag har redan använt mig av de föreslagna åtgärderna utan att nämnvärt förbättra hastigheten på makrot. Jag letade efter en annan kod, och stötte på följande sida: http://www.dicks-blog.com/archives/category/vba/ Tack för ditt engagemang men tyvärr hjälper det inte i mitt fall. Orsaken är att delningen av arbetboken inte kan tas bort eftersom det kan vara flera användare som använder den samtidigt.Långsamt makro i delad arbetsbok
Jag tor att det beror på att alla ändringar i arbetsboken sparar i en logg om arbetsboken är delad dvs alla ändringar som mitt makro gör måste loggas.
Kan man komma runt detta? Stänga av loggningen under tiden makrot körs eller på något annat sätt?
Det fungerar inte med:
<code> Activeworkbook,KeepChangeHistory = False</code>. Sv: Långsamt makro i delad arbetsbok
I teorin är det ju följande som gäller:
Antingen får du strunta i alla ändringar eller så får du se till att den inte är delad.
I praktiken däremot...?
Får se om jag hinner återkomma innan någon kommer med ett bättre svar.Sv: Långsamt makro i delad arbetsbok
Ingen som har en lösning på problemet dvs förhindra att ändringar som görs av ett makro i en delad arbetsbok automatiskt sparas i ändringloggen?Sv:Långsamt makro i delad arbetsbok
Application.Calculation = xlManual
Application.ScreenUpdating = False
Sen saker som att se till att man inte markerar celler i makron, att man använder Excels inbyggda formler istället för egna etc.
Du kan ju också testa att spela in ett makro där du "stänger av" delningen eller ändringsloggen, och se om du får ut nåt av det.Sv: Långsamt makro i delad arbetsbok
Problem verkar, som jag tidigare skrivit, bero på att varje enskild ändring i en delad arbetsbok loggas för att senare kunna spåras. Detta tar tid om i ett makro genomför ändringar i många celler.
Jag har sökt lösningar på webben utan framgång och får just nu acceptera att det inte verkar finnas någon lösning på problemet.Sv:Långsamt makro i delad arbetsbok
Följande kod står där:
'unshare
Application.DisplayAlerts = False
ThisWorkbook.ExclusiveAccess
Application.DisplayAlerts = True
'Do stuff here
're-share
Application.DisplayAlerts = False
ThisWorkbook.SaveAs , , , , , , xlShared
Application.DisplayAlerts = True
Alla credits till Dick Kusleika, hoppas det hjälper!
Sv: Långsamt makro i delad arbetsbok