' Символы типов: https://msdn.microsoft.com/ru-ru/library/s9cz43ek.aspx
Sub CSV_Write()
Dim rng As Range, V, i%, j%
Set rng = ActiveSheet.UsedRange '[B2:F6]
Open Application.ThisWorkbook.Path & "\Language.csv" For Output As #1
For i = 1 To rng.Rows.Count
For j = 1 To rng.Columns.Count
V = rng.Cells(i, j): If j = rng.Columns.Count Then Write #1, V Else Write #1, V,
Next j
Next i: Close #1
End Sub
Sub CSV_Read()
' N - первый свободный номер файла, R - заданная строка, C - заданный столбец
' TXT - массив данных CSV, L - одна строка CSV, qL - число строк
' Arr - массив данных, qR - число строк, qC - число столбцов
Dim N%, R&, C&, TXT$, L, qL, Arr() As String, qR&, qC&
' Загрузка файла, разбивка на линии, оценка размеров массива
N = FreeFile: Open Application.ThisWorkbook.Path & "\Language.csv" For Input As N: TXT = Input$(LOF(N), #N): Close N
qL = Split(TXT, vbCrLf)
qR = UBound(qL): L = Split(qL(0), ","): qC = UBound(L): ReDim Arr(qR, qC)
' Копирование данных в массив
For R = 0 To qR
If Len(qL(R)) > 0 Then L = Split(qL(R), ","): For C = 0 To qC: Arr(R, C) = L(C): Next C
Next R
' Вывод содержимого строки 3 из столбца 1 без кавычек
MsgBox Replace(Arr(3, 0), """", "")
' Печать всего массива: For R = 0 To qR: For C = 0 To qC: Debug.Print Arr(R, C) & "|";: Next C: Debug.Print: Next R
End Sub
|