2016-07-25 75 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 
相關問題