2016-07-25 4 views
0

Я нашел code in this discussion, который был чрезвычайно полезен для экспорта листов Excel в качестве новой книги. Я опубликовал версию кода, который я сейчас использую ниже.Экспортировать лист как новый файл Excel (только значения)

Поскольку этот код стоит, он копирует содержимое нужного листа в новую книгу, формулы и все.

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

Я ценю любое понимание, которое любой может предоставить.

Sub ExportXLSX() 

'exports desired sheet to new XLSX file 

Dim MyPath As String 

Dim MyFileName As String 

Dim DateString As String 

DateString = Format(Now(), "yyyy-mm-dd_hh_mm_ss_AM/PM") 

MyFileName = DateString & "_" & "Whatever You Like" 

If Not Right(MyFileName, 4) = ".xlsx" Then MyFileName = MyFileName & ".xlsx" 

Sheets("Desired Sheet").Copy 

With Application.FileDialog(msoFileDialogFolderPicker) 
    .Title = "Where should we save this?" 
    .AllowMultiSelect = False 
    .InitialFileName = "" '<~~ The start folder path for the file picker. 
    If .Show <> -1 Then GoTo NextCode 
MyPath = .SelectedItems(1) & "\" 

End With 

NextCode: 

With ActiveWorkbook 
.SaveAs Filename:=MyPath & MyFileName, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False 
.Close False 

End With 

End Sub 
+0

вы искали, как скопировать для значений только хорошо (так как вы нашли другой полезный код)? есть много вопросов, подобных этому на SO и в интернете в целом. –

+0

@ScottHoltzman благодарит за ответ. Я нашел много полезного кода для вставки в качестве значений, но мне не повезло просто копировать значения. Поскольку код выше не использует команду paste, мне интересно, как действовать. Я ценю любые идеи, которые у вас могут быть. –

+0

Просто применяйте эти методы к используемым ячейкам на листе после копирования самого листа. Либо «Копировать | PasteSpecial xlValues' или '.Value = .Value' –

ответ

0

См пересмотренный раздел NextCode для решения:

NextCode:  

With ActiveWorkbook 
     .ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value '<~~ converts contents of XLSX file to values only 
     .SaveAs Filename:=MyPath & MyFileName, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False 
     .Close False 
    End With 
Смежные вопросы