Как скопировать только один лист (не все) в файл .xls в Excel VBA? - PullRequest
1 голос
/ 06 марта 2010

Пожалуйста, помогите.Я хочу скопировать только один лист MainFinal из двенадцати других листов (не все листы оригинала) в другой файл .xls с помощью 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

1 Ответ

2 голосов
/ 06 марта 2010

Это переместит названный лист в совершенно новый файл.Никакого дополнительного кодирования не требуется.

Sheets("MainFinal").Copy

Эта строка должна сохранить ваш новый файл.

Workbooks(workbooks.count).saveas _
    Filename:="C:\Documents and Settings\algorn\My Documents\Excel files\" & _
              "OutputFile" & MyStr & ".xls", CreateBackup:=False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...