2016-06-22 2 views
0

J'ai ce morceau de code qui copie la formule d'une cellule dans la colonne et est incroyablement lent (15 minutes pour une feuille de 10 mille lignes). Le code est: program.Worksheets("Data").Range("X2:AC2").AutoFill program.Worksheets("Data").Range("X2:AC" & LastRow)VBA AutoFill Speed ​​Numéro

J'ai également essayé de mettre .AutoFill Destination, n'a pas résolu le problème. J'utilise un With Worksheets("Data"), mais ne fonctionne toujours pas. J'ai également essayé d'insérer les formules manuellement, cela ne fonctionnait pas non plus (du tout). Des suggestions sur comment pourrait-il être plus rapide? Merci!

+2

Ce n'est pas le code qui remplit les cellules qui prend le temps, ce sont les calculs effectués par les formules. La seule façon de l'accélérer serait d'écrire une formule plus efficace. –

+1

Désactiver le calcul automatique pendant le remplissage et le réactiver après? – Dave

+0

Malheureusement, activer et désactiver le calcul automatique après ne fonctionne pas non plus, car quand il se termine, les colonnes sont tout simplement vides, il ne remplit rien. – Istvan

Répondre

0
program.Worksheets("Data").Activate 
Range("X2:AC").AutoFill Destination:=Range("X2:AC" & LastRow) 
+0

Cela fonctionne aussi bien, mais aussi lent que mes solutions :( – Istvan

+0

Pour réduire le temps, utilisez 'Application.Calculation = xlCalculationManual' avant d'exécuter le code et' Application.Calculation = xlCalculationAutomatic' après le code. – Juanpablomo