2015-04-27 2 views
0

Dans un sous-module, je suis en train d'analyser la feuille active et de créer une nouvelle feuille (dans un nouveau classeur), Après l'achèvement de ce sous je dois activer à nouveau l'ancienne feuille crééComment activer une feuille de calcul spécifique dans une autre feuille de calcul dans Excel

Dim sourceSheet As Worksheet 
Set sourceSheet = ActiveSheet 
Analysis(sourceSheet) 

Dans la sous qui traitera cette fiche, j'ai envoyé la sourceSheet comme une variable

Public Sub Analysis(sourceSheet As Worksheet) 
Set ActiveSheet = sourceSheet 

Il lance erreur d'exécution 438

Comment rendre l'ancienne feuille aussi active? après la création d'un nouveau classeur en utilisant le sous-parent

+1

Puisque vous déclarant déjà une variable de feuille de calcul pour votre feuille, je proposerais retravaillant votre code pour éviter d'utiliser 'acitve * 'du tout. Cela aidera à éviter toutes sortes d'erreurs car votre code devient plus complexe et vous perdez la trace de la feuille actuellement active. Le faire est très simple, et ne prend pas beaucoup de temps ou d'effort pour la récompense potentielle. – FreeMan

Répondre

1

Je ne crois pas que vous pouvez réellement définir ActiveWorksheet, car cela est en lecture seule.

Je pense au lieu de:

Set ActiveSheet = sourceSheet 

Vous voulez:

sourceSheet.Activate 
+0

merci beaucoup! –