VBA将数据导出到CSV文件(仅值)

时间:2020-03-19 19:27:00

标签: excel vba csv export

我想执行标题的任务,并从extendoffice.com修改以下代码(谢谢)。

Sub export_data_to_CSV()

Dim Rng As Range
Dim WorkRng As Range
Dim xFile As Variant
Dim xFileString As String
Dim LR As Long
LR = Application.WorksheetFunction.CountA(Worksheets("MAIN").Range("A1:A50001"))

Set WorkRng = Application.Selection
Set WorkRng = Worksheets("MAIN").Range("A2:J" & LR)


Application.ActiveSheet.Copy
Application.ActiveSheet.Cells.Clear
WorkRng.Copy Application.ActiveSheet.Range("A1")
Set xFile = CreateObject("Scripting.FileSystemObject")
xFileString = Application.GetSaveAsFilename("", filefilter:="Comma Separated Text (*.CSV), *.CSV")
Application.ActiveWorkbook.SaveAs Filename:=xFileString, FileFormat:=xlCSV, CreateBackup:=False

End Sub

代码工作正常,但是,它将所有公式甚至我的按钮保存到目标文件。如果我只想将值保存到目标CSV文件中,该怎么办?

2 个答案:

答案 0 :(得分:0)

CSV文件在定义上不能包含公式或按钮。我认为您只是在当前打开的Excel实例中看到它们,但是如果要打开新保存的CSV文件,它们将不会显示。

要解决您的后续问题:

如果我想使用代码立即关闭目标文件,应该添加哪些行?

ActiveWorkbook.Close SaveChanges:=False

答案 1 :(得分:0)

这是一些演示代码。它:

  1. Sheet1 复制到新工作簿
  2. 清除克隆(已复制)工作表中的所有公式单元格
  3. 将克隆另存为 .csv
  4. 关闭克隆工作簿


Sub KopyKat()
'
    Sheets("Sheet1").Select 'move to sheet
    Sheets("Sheet1").Copy   'copy sheet to new workbook

    ActiveSheet.Cells.SpecialCells(-4123).Clear 'get rid of formulas

    'then save as .csv

    ActiveWorkbook.SaveAs Filename:="C:\Users\garys\Desktop\bk.csv", FileFormat _
        :=xlCSVUTF8, CreateBackup:=False
    ActiveWorkbook.Close 'close the new workbook

    ' the original workbook is now active again
End Sub
相关问题