VBA для экспорта данных в файл CSV (только значения) - PullRequest
0 голосов
/ 19 марта 2020

Я бы хотел выполнить задачу с субтитрами со следующими кодами, измененными с 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 голосов
/ 19 марта 2020

Вот некоторый демонстрационный код. Он:

  1. копирует Лист1 в новую рабочую книгу
  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
0 голосов
/ 19 марта 2020

CSV-файлы не могут иметь формул или кнопок по определению. Я думаю, вы просто видите их в текущем открытом экземпляре Excel, но если бы вы открыли недавно сохраненный CSV-файл, они бы не присутствовали.

Чтобы ответить на ваш следующий вопрос:

Если я хочу мгновенно закрыть целевой файл с кодом, какие строки я должен добавить?

ActiveWorkbook.Close SaveChanges:=False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...