2013-12-17 5 views
2

Я пытаюсь сохранить первый лист в Excel файл в директорию C: с помощью этого кода:Проблема На Сохранение активного листа в качестве нового рабочего листа

Sub SaveSheet() 
    ActiveSheet.Copy 
    With ActiveSheet.UsedRange 
     .Copy 
     .PasteSpecial xlValues 
     .PasteSpecial xlFormats 
    End With 
    Application.CutCopyMode = False 
    ActiveWorkbook.SaveAs "C:/" & Format(Range("E19"), "mmm-d-yyyy") 
End Sub 

, но у меня возникли две проблемы здесь:
First из всего, что я не знаю, где установить новый файл Name?
2- я сталкиваясь с следующим предупреждением:

enter image description here

в то время как я уже включена с помощью макросов, как:

enter image description here

Можете ли вы, пожалуйста, дайте мне знать, как исправить эти проблемы ?

Thansk

обновление: enter image description here

ответ

4

Синтаксис .SaveAs является

expression.SaveAs(FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local)

Обратитесь к помощнику Excel для получения более подробной информации. При сохранении книги минимум двух параметров, которые вы должны указать, - FileName и FileFormat

Если вы хотите сохранить файл в виде файла без макроса, вам необходимо будет указать его формат.

Например

ActiveWorkbook.SaveAs Filename:="C:\" & Format(Range("E19"), "mmm-d-yyyy") & ".xlsx", _ 
         FileFormat:=xlOpenXMLWorkbook 

или более упрощенный подход

Sub SaveSheet() 
    Dim FName As String 

    ActiveSheet.Copy 
    With ActiveSheet.UsedRange 
     .Copy 
     .PasteSpecial xlValues 
     .PasteSpecial xlFormats 
    End With 
    Application.CutCopyMode = False 

    FName = "C:\" & Format(Range("E19"), "mmm-d-yyyy") & ".xlsx" 

    ActiveWorkbook.SaveAs Filename:=FName, _ 
          FileFormat:=xlOpenXMLWorkbook 
End Sub 

Аналогично, если вы хотите сохранить файл с макросами выше код становится

Sub SaveSheet() 
    Dim FName As String 

    ActiveSheet.Copy 
    With ActiveSheet.UsedRange 
     .Copy 
     .PasteSpecial xlValues 
     .PasteSpecial xlFormats 
    End With 
    Application.CutCopyMode = False 

    FName = "C:\" & Format(Range("E19"), "mmm-d-yyyy") & ".xlsm" 

    ActiveWorkbook.SaveAs Filename:=FName, _ 
          FileFormat:=xlOpenXMLWorkbookMacroEnabled 
End Sub 

Вот некоторые commnon форматы файлов

50 = xlExcel12 (Excel Binary Workbook in 2007-2013 with or without macro's, xlsb) 
51 = xlOpenXMLWorkbook (without macro's in 2007-2013, xlsx) 
52 = xlOpenXMLWorkbookMacroEnabled (with or without macro's in 2007-2013, xlsm) 
56 = xlExcel8 (97-2003 format in Excel 2007-2013, xls) 
+0

спасибо Сиддхарту, единственное, что я до сих пор путаю, это этот свободный макрос? что это значит? – Behseini

+0

Когда вы сохраняете файлы xlsx, он не сохраняет макросы. Возможно, вы захотите увидеть [ЭТО] (http://stackoverflow.com/questions/20580359/what-are-macros-in-ms-excel/20584444#20584444) –

+0

спасибо, всего лишь одну последнюю вещь, если я хочу назвать файл для explple TestSheet.xls, где exavtly я должен положить его после C:? – Behseini

Смежные вопросы