Изменение CSV с помощью макросов Excel - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь извлечь информацию из CSV ( studentData.csv ) в Word.Я определил, что из-за некоторого форматирования из базы данных, из которой был сделан данный CSV, Word распознает, что имеется n строк, но он считает возврат каретки в самой строке как одну из строк,в результате я не достигаю EOF.

т.е.: следующая информация обрабатывается как две строки, что исключает мой счет.

All of this information
is stored in one cell

После нескольких часов различных попыток я решил написать скрипт в отдельной книге Excel( runMe.xlsm ) для форматирования studentData.csv .К сожалению, я бил стену;когда я пытаюсь открыть CSV в качестве рабочей книги и получить имя файла, вместо этого он возвращает runMe.xlsm .Ниже приведен мой код:

Sub testingStuff()

    Dim r      'Rows that contain data
    Dim wb As Workbook, sh As Worksheet, p As String

    'Set wb = Workbooks.Open(filename:="\...\studentData.csv", local:=True)

    p = Dir("\...\studentData.csv")
    Debug.Print p

    Set wb = Workbooks.Open(p)
    Debug.Print wb.path & ": " & wb.Name  'checking the path

    Set sh = wb.Sheets(1)

    r = Application.WorksheetFunction.CountA(sh.Range("O:O"))

    Debug.Print wb.Name & ": " & sh.Name & ": " & r

End Sub

Это мое ближайшее окно:

studentData.csv
\...\: runMe.xlsm
runMe.xlsm: Sheet1: 0

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

Следует отметить, что и файл CSV, и файл xlsm находятся в одной папке.

Итак, как мне отформатировать это?Я написал короткий макрос:

    r = Application.WorksheetFunction.CountA(sh.Range("O:O"))

        With ActiveWorkbook.ActiveSheet
            For i = 1 To r
               .Cells(i, 15).Value = Replace(.Cells(i, 15).Value, vbNewLine, "")
            Next
        End With

Мне просто нужен способ применить его.Или мне даже не нужно беспокоиться о форматировании CSV - могу ли я обойти эту проблему в Word?

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