【问题标题】:VBA to export data to CSV file (only values)VBA 将数据导出到 CSV 文件(仅值)
【发布时间】:2020-03-19 19:27:00
【问题描述】:

我想使用从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 不能有公式或按钮,你的 csv 文件怎么会有它们?
  • 哎呀。此代码以打开的目标文件结束。在我关闭并重新打开它后,该文件成为一个真正的 CSV 文件,没有任何公式和按钮。如果我想用代码立即关闭目标文件,我应该添加哪些行?
  • ActiveWorkbook.Close SaveChanges:=False?虽然我不会在这里与ActiveWorkbook 合作。
  • 任务完成。谢谢大本。

标签: excel vba csv export


【解决方案1】:

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

解决您的后续问题:

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

ActiveWorkbook.Close SaveChanges:=False

【讨论】:

    【解决方案2】:

    这是一些演示代码。它:

    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
    

    【讨论】:

    • 嗨,加里,感谢您的回答。第 4 行给了我对象 '_Workbook' 的方法 'SaveAs' failed.
    • @JohnLiu 注意发布的代码保存到 my 目录下的文件中......你必须修改。
    猜你喜欢
    • 2013-10-17
    • 1970-01-01
    • 2017-10-16
    • 2014-08-07
    • 2014-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多