我有一个可以将工作表导出到.csv的工作簿,但它会将其复制到新的工作簿中一秒钟,然后保存,我想知道是否有办法只是从工作表中复制数据而不打开新的工作簿?我的代码是:
Sub CopyToCSV()
Dim FlSv As Variant
Dim MyFile As String
Dim sh As Worksheet
Dim MyFileName As String
Dim DateString As String
Application.ScreenUpdating = False
DateString = Format(Now(), "dd-mm-yyyy_hh-mm-ss-AM/PM") '<~~ uses current time from computer clock down to the second
MyFileName = "Results - " & DateString
Set sh = Sheets("Sheet1")
sh.Copy
FlSv = Application.GetSaveAsFilename(MyFileName, fileFilter:="CSV (Comma delimited) (*.csv), *.csv", Title:="Where should we save this?")
If FlSv = False Then GoTo UserCancel Else GoTo UserOK
UserCancel: '<~~ this code is run if the user cancels out the file save dialog
ActiveWorkbook.Close (False)
MsgBox "Export Canceled"
Exit Sub
UserOK: '<~~ this code is run if user proceeds with saving the file (clicks the OK button)
MyFile = FlSv
With ActiveWorkbook
.SaveAs (MyFile), FileFormat:=xlCSV, CreateBackup:=False
.Close False
End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
2 回答
试试这个( tested on a simple dataset )