簡體   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