Сохранить содержимое ячейки в CSV без кавычек в Excel - PullRequest
1 голос
/ 15 апреля 2020

Я пытаюсь создать CSV-файл (без кавычек) с использованием VBA - единственным содержимым файла должно быть значение в ячейке с именем «MetricValue».

    Dim FileName As String
    Dim PathName As String
    Dim ws As Worksheet

    Set Range.Value = MetricValue
    FileName = "filename.csv"
    PathName = Application.ActiveWorkbook.Path
    ws.Copy
    ActiveWorkbook.SaveAs FileName:=PathName & "\" & FileName, _
        FileFormat:=xlCSV, CreateBackup:=False
End Sub

Я знаю, что я ' Мы что-то напутали с настройкой диапазона, но не могу понять, почему. Все, что я пытался заставить работать, только вывод с кавычками вокруг значения. Кто-нибудь может указать мне правильное направление?

1 Ответ

3 голосов
/ 15 апреля 2020

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

В любом случае, есть два решения для сохранения значения именованного диапазона в виде файла CSV с помощью макроса. Убедитесь, что указанный диапазон находится на уровне рабочей книги (не листа).

Первый вариант

Sub MakeASingleValueCSVFile()
Dim FileName As String: FileName = "filename.csv"
Dim PathName As String: PathName = Application.ActiveWorkbook.Path
Dim finalValue As Double: finalValue = Range("MetricValue").Value


Dim iFileNum As Long
iFileNum = FreeFile
Open PathName & "\" & FileName For Output As iFileNum

Print #iFileNum, finalValue
Close #iFileNum
End Sub

В нем есть проблемы с пробелами, которые могут вам не понравиться.

Вариант 2

(дополнено более динамичным c решением по первому вопросу)

Const FileName As String = "filename2"
Const namedRange As String = "MetricValue" 'make sure at workbook level
Dim PathName As String: PathName = Application.ActiveWorkbook.Path
Dim pullRNG As Range: Set pullRNG = Range(namedRange)
Dim wkBK As Workbook: Set wkBK = Application.Workbooks.Add

With wkBK

    .Sheets(1).Cells(1, 1).Resize(pullRNG.Rows.Count, pullRNG.Columns.Count) = pullRNG.Value

        .SaveAs PathName & "\" & FileName, xlCSV
    .Close
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...