Добавление отформатированной строки CSV в таблицу Excel с использованием VBA - PullRequest
0 голосов
/ 04 января 2019

Текущий код:

' send http post request
objHTTP.Send (payload)

' response is a CSV formatted string
Dim response
response = objHTTP.responseText

If objHTTP.Status = "200" Then 'success
    ' add response to some worksheet
    ThisWorkbook.Names("some_cell").RefersToRange.Value = response
Else
    Debug.Print "Something Went Wrong!"
End If

Проблема:

Вся строка csv добавляется в одну ячейку (не удивительно, так как мой named_range является одной ячейкой), но я не знаю, что нужно обновить, чтобы это работало правильно.

Правильным поведением было бы добавление строки CSV на лист таким же образом, как если бы Excel открывал файл .csv.

1 Ответ

0 голосов
/ 05 января 2019

Примерно так:

Sub Tester()
    LoadCsvToRange "A,B,C" & vbCrLf & "D,E,F", Sheet1.Range("e5")
End Sub

Sub LoadCsvToRange(csv As String, rngDest As Range)
    Dim f, wb
    'write to a temp file
    With CreateObject("scripting.filesystemobject")
        f = .GetSpecialFolder(2) & "\" & .GetTempName & ".csv"
        .CreateTextFile(f).write csv
    End With
    'open file in Excel and copy content
    With Workbooks.Open(f)
        .Sheets(1).UsedRange.Copy rngDest.Cells(1)
        .Close False
    End With
    Kill f 'remove temp file
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...