Экспорт рабочего листа
- Перед запуском кода настройте значения переменных
NewFilePath
и SourceSheet
в Sub exportFirst
. NewFilePath
должен не оканчиваться обратным символом sh \
. - Код написан для ссылки на рабочий лист в
ThisWorkbook
, то есть на рабочую книгу, содержащую этот код. Sub exportFirst
вызывает Sub exportWorksheet
. - Вы можете написать несколько подпрограмм, например,
Sub exportFirst
для других рабочих листов в книге. - Я бы предпочел использовать, например,
Worksheets("Sheets1")
Worksheets(1)
. - После того, как вы закончили тестирование кода, вам, вероятно, следует откомментировать строку
.Close
.
Option Explicit
Sub exportFirst()
Const NewFilePath As String _
= "C:\Test"
Dim SourceSheet As Worksheet
Set SourceSheet = ThisWorkbook.Worksheets(1)
exportWorksheet SourceSheet, NewFilePath
End Sub
Sub exportWorksheet(SourceSheet As Worksheet, NewFilePath As String)
Dim NewFileName As String
Dim SaveLocation As String
' Either:
' ' If you want to name the new workbook using 'SourceSheet.Name':
NewFileName = SourceSheet.Name
' ' Or:
' ' If you want to name the new workbook using 'ThisWorkbook.Name':
' NewFileName _
' = Left$(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1)
' I would prefer "yyyymmdd" or at least "ddmmmyyyy"
SaveLocation = NewFilePath & "\" & NewFileName & " (daily)" _
& Format(Date, "ddmmmyyy")
SourceSheet.Copy
With ActiveWorkbook
' Either:
' .xlsm
SaveLocation = SaveLocation & ".xlsm"
.SaveAs FileFormat:=xlOpenXMLWorkbookMacroEnabled, _
Filename:=SaveLocation
' or:
' .xlsx
' SaveLocation = SaveLocation & ".xlsx"
' .SaveAs FileFormat:=xlOpenXMLWorkbook, _
' Filename:=SaveLocation
' or:
' .csv
' SaveLocation = SaveLocation & ".csv"
' .SaveAs FileFormat:=xlCSVUTF8, Filename:=SaveLocation
' or:
' .pdf
' SaveLocation = SaveLocation & ".pdf"
' .ExportAsFixedFormat Type:=xlTypePDF, Filename:=SaveLocation
' .Saved = True
'.Close ' You should use '.Close' always with '.pdf'.
End With
End Sub