繁体   English   中英

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

[英]VBA to export data to CSV file (only values)

我想使用从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 文件,我应该对代码做什么?

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

要解决您的后续问题:

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

ActiveWorkbook.Close SaveChanges:=False

这是一些演示代码。 它:

  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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM