Excel в CSV соединение - PullRequest
       1

Excel в CSV соединение

0 голосов
/ 21 марта 2019

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

1 Ответ

0 голосов
/ 21 марта 2019

Допустим, у вас есть c:\example.csv файл с содержанием:

0,5.324,text
4,true,other text,4.6E2
"45",,

Как видите, я поместил в него несколько видов значений (integers, doubles, strings, booleans, ...). Теперь предположим, что вы хотите поместить содержимое файла в таблицу Excel (например, начиная с ячейки C2).

Следующий код поможет:

Sub ReadCsv()
    '-----Variables:
        Dim FileName As String: FileName = "c:\example.csv"      '<-- file path
        Dim FSO As New FileSystemObject                          '<-- file system object
        Dim Reader As TextStream                                 '<-- stream
    '-----
        Dim LineTemp As String                                   '<-- temporary string
        Dim LineData() As String                                 '<-- line array
    '-----
        Dim SH As Worksheet: Set SH = ThisWorkbook.Sheets("X1")  '<-- your sheet
        Dim RW As Long, CL As Long: RW = 2: CL = 3               '<-- row and column of first cell to write
    '-----Procedure:
        Set Reader = FSO.OpenTextFile(FileName)                  '<-- open file
        Do While Not Reader.AtEndOfStream                        '<-- read to the end
            LineTemp = Reader.ReadLine                           '<-- record the line
            LineData = Split(LineTemp, ",")                      '<-- split the data
            For x = LBound(LineData) To UBound(LineData)         '<-- get the data
                SH.Cells(RW, CL).FormulaR1C1 = LineData(x)       '<-- write the data
                CL = CL + 1
            Next x
            CL = 3: RW = RW + 1
        Loop
        Reader.Close                                             '<-- close file
End Sub

Результат следующий:

contents from .csv

Не забудьте добавить библиотеку Microsoft Scripting Runtime к вашим ссылкам. Вы можете сделать это в Tools> References.

Этот метод я использую для предотвращения любых конфликтов между файлами Microsoft Excel и .csv. Это всегда работает ...

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