2017-07-22 2 views
0

J'ai une macro que nous utilisions depuis des années et qui fonctionnait bien dans Excel 2010. Cependant, maintenant que nous avons mis à niveau vers Excel 2013, cela donne une erreur d'exécution 9 . la partie de code suivant est mis en évidence après le débogage il:Erreur d'exécution VBA dans Excel 2013 qui fonctionne bien dans Excel 2010

Sheets(1).Copy after:=Workbooks(mfname).Sheets(3) 

Je sais déjà que cette erreur doit faire quelque chose avec la disponibilité de la gamme. La question est de savoir s'il y a une solution facile à cela? Le code-extrait pertinent:

Workbooks.Add 
mfname= ActiveWorkbook.Name 

Workbooks.Open template 
template_name = ActiveWorkbook.Name 
Sheets(1).Copy after:=Workbooks(mfname).Sheets(3) 

Workbooks(mfname).Activate 
Sheets(1).Delete 
Sheets(1).Delete 
Sheets(1).Delete 
lapok = Sheets.Count 

Merci pour votre aide!

Répondre

0

Je ne suis pas un expert en VBA, mais une petite recherche sur Google indique que l'erreur 9 est un indice d'erreur hors plage.

Ceci est probablement à partir de Sheets(3). Je me souviens aussi qu'Excel avait 3 feuilles ouvertes par défaut dans ces versions. Peut-être que ce n'est pas le cas maintenant, et causant le problème.

+0

Salut, oui - C'était le problème, j'ai un peu modifié le code et ajouté les deux feuilles manquantes au classeur cible et maintenant il fonctionne à nouveau! Merci de votre aide! – user8350532