2016-07-25 68 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感谢您的回应。我发现很多有用的代码粘贴为值,但​​我没有任何运气只是复制值。由于上面的代码不使用粘贴命令,我想知道如何继续。我很欣赏你的任何想法。 –

+0

在复制工作表本身后,只需将这些方法应用于工作表上的已使用单元格即可。可以是'Copy | 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 
相关问题