Hej! Skriver du i VBA får du det nog knappast till mer "maskinkod" hur du än gör. Vid kompilering så utförs "något" som ofta gör filen större, en rimlig tolkning är att det är något slags kompilering. Precis, koden kommer inte att snurra nämnvärt snabbare... Hej Niklas!Kompilering av Excel VBA-kod
Jag har utvecklat en applikation för Excel 2002/XP där jag har programmerat en massa hyss (VBA-kod) som händer i ett kalkylblad. För att generellt snabba på exekveringen vet jag att man ska kunna ”kompilera” VBA-koden till maskinkod (vilket jag vill minnas att man kunde göra direkt från Visual Basic Editor för Excel 5.0 en gång för länge sedan). VBA-editorn för Excel 2002 erbjuder dock bara en syntaxkontroll av koden för att hitta eventuella ”kompileringsfel”, men koden blir aldrig ”kompilerad” i ordets rätta bemärkelse (Felsök_Kompilera VBA-projekt).
- Vad behöver jag för att kompilera VBA-koden i Excel 2002 och 2003?
- Finns det någon annan programvara som kan kompilera Excels VBA-kod till maskinkod (Känns lite överambitiöst att investera i en hel utvecklingsmiljö för en sådan liten "struntsak" som kompilering)?
Tacksam för svar!Sv: Kompilering av Excel VBA-kod
Men det spelar ingen roll, effekten av en eventuell kompilering är som bäst marginell i fallet VBA. Slår du av screen updating och programmerar på ett effektivt sätt i övrigt kommer du aldrig behöva den eventuella lilla pushen ändå. Har du sådana prestandakrav kan du gå via (ev.) VBA, C, C++ eller .NET istället; men då får det fan vara höga prestandakrav.
Jag skulle rekommendera dig att kompilera grejen och sen förbättra koden där du tycker att det går långsamt.Sv:Kompilering av Excel VBA-kod
Tips:
Använd inte Application.Något.. i långa lopar då dessa i regel är väldigt långsamma jämfört med om man själv skriver lite extra kod för samma sak (Tex D = Application.Median(1, 2, 3) .Min .Max mfl.)
Skriv så lite som möjligt i kalkylbladens celler, går väldigt långsamt. Speciellt om man kopplat formler eller diagram till dessa celler, då vill nämligen dessa uppdatera sig hela tiden...
använd Application.ScreenUpdating=FalseSv:Kompilering av Excel VBA-kod
Tack för svaret och ursäkta min senfärdighet
Hälsningar
Leif