2010-03-05 6 views
1

S'il vous plaît, aidez-nous. Je veux copier une feuille 'MainFinal' parmi douze autres feuilles (pas toutes les feuilles dans l'original), dans un autre fichier .xls utilisant Excel VBA. Le code que j'ai attaché ci-dessous fonctionne, sauf qu'il copie toutes les feuilles de calcul et pas seulement celui, et aussi quand un nouveau fichier créé s'ouvre et le fichier source est fermé. Quelqu'un at-il des suggestions quoi de mal avec mon code? J'ai essayé différentes combinaisons de feuilles de calcul, de feuilles, d'activesheet mais sans succès)?Comment copier une seule feuille (pas toutes) en fichier .xls dans Excel VBA?

Sub CopyMainFin() 
' 
' CreaMainFin Macro 
' 
Dim LastCopyRow As String 
Dim MyStr As String 
MyStr = Format(Date, "mmddyyyy") 
LastCopyRow = “BT307” 

Application.ScreenUpdating = False 

Worksheets("MainFinal").Range("A1", LastCopyRow).Activate 
Worksheets("MainFinal").Range("A1",LastCopyrow).Select 
Worksheets("MainFinal").Range("A1", LastCopyRow).Copy 
‘ I noticed that my rage selected 

ActiveSheet.SaveAs Filename:="C:\Documents and Settings\algorn\My Documents\Excel files\" & "OutputFile" & MyStr & ".xls", CreateBackup:=False 

'ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\My Documents\Excel files\" & "OutputFile" & MyStr & ".xls", CreateBackup:=False  = Also not working 

End Sub 

Répondre

2

Cela va déplacer la feuille nommée dans un tout nouveau fichier. Pas de codage supplémentaire nécessaire.

Sheets("MainFinal").Copy 

Cette ligne devrait enregistrer votre nouveau fichier.

Workbooks(workbooks.count).saveas _ 
    Filename:="C:\Documents and Settings\algorn\My Documents\Excel files\" & _ 
       "OutputFile" & MyStr & ".xls", CreateBackup:=False 
Questions connexes