Я пытаюсь извлечь информацию из 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?