将工作表导出为 CSV
另一种选择
Option Explicit
Sub ExportWorksheetToCSVtest()
Const FilePath As String = "C:\temp\MyFile.csv"
Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("Input")
ExportWorksheetToCSV ws,FilePath
End Sub
Sub ExportWorksheetToCSV( _
ByVal ws As Worksheet,_
ByVal FilePath As String)
If ws Is Nothing Then Exit Sub
ws.Copy
With ActiveWorkbook
Application.DisplayAlerts = False
.SaveAs FilePath,xlCSV
Application.DisplayAlerts = True
.Close SaveChanges:=False
End With
End Sub
,
更新了改进的答案。
不确定您的工作表做错了什么,但这会起作用。不要使用选择。
Dim CopyRange As Range,copySheet As Worksheet
Set copySheet = ActiveSheet
Set CopyRange = Intersect(Range("A:C"),copySheet.UsedRange)
Dim theValues()
theValues = CopyRange.Value
Workbooks.Open Filename:="C:\temp\MyFile.csv"
Dim theCSV As Workbook
Set theCSV = ActiveWorkbook
theCSV.Sheets(1).Range("A1").Resize(UBound(theValues),UBound(theValues,2)) = theValues
,
@PGSystemTester:这段代码做了同样的事情。所有内容仅粘贴在 A 列中。
@VBasic2008:这有效,但也出现了意外错误。
我所做的工作基本上是运行相同的宏两次。我不确定为什么会这样。但宏第一次运行时,它会粘贴 A 列中的所有内容。再次运行时,它会正确粘贴。所以我只是将宏的编码加倍,现在它工作正常。
感谢您的帮助!
本文链接:https://www.f2er.com/3831.html