Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Создание массива из элементов другого массива, массив, состоящий из элементов другого массива с одинаковым порядковым номером
 
Доброго времени суток, столкнулся с небольшой проблемой. Если кто-нибудь осведомлен - помогите, пожалуйста)
Есть таблица значений, выведенная из текстового файла, теперь требуется озаглавить каждый столбец этой таблицы, названия столбцов находятся в двумерном массиве "b", в строках с 3ей по 26ю, одинаковым порядковым номером элемента - вторым. Каким образом мне задать массив "c", чтобы поместить туда вторые элементы указанных строк массива "b".
То, как я делаю это сейчас - заканчивается ошибкой "type mismatch"
Код прилагаю, заранее спасибо, с уважением.
Ошибка при записи текстового файла в таблицу "subscript out of range", При попытке занесения информации из dat-файла в таблицу выдает ошибку
 
Здравствуйте, уважаемые форумчане!
По роду деятельности пришлось столкнуться со следующей задачей, есть текстовый файл, в котором 80000 строк, в каждой из которых записаны 26 численных значений через запятую. Требовалось написать макрос, чтобы этот файл преобразовывался в таблицу в экселе.
Я совершенно новый человек в ВБА и все, к чему смог прийти, так это код, представленный ниже. При запуске, после выбора файла, выдает ошибку "subscript out of range", пытался разрулить сам, но, видимо нужен чей-то более профессиональный взгляд. Помогите, пожалуйста, исправить ошибку)
Заранее прошу прощения, если это где-то обсуждалось, я не нашел)
Код
Sub Main()
    Dim a()
    Dim i
    Dim file_name, txt
    Dim rw, cl
'------------------------
    file_name = Application.GetOpenFilename("COMTRADE Files (*.dat), *.dat")
    txt = CreateObject("scripting.filesystemobject").OpenTextFile(file_name, 1, True).ReadAll
    rw = Split(txt, vbNewLine)
    cl = Split(rw(0), ",")
    ReDim a(1 To UBound(rw), 1 To UBound(cl) + 1)
    For i = LBound(rw) To UBound(rw)
        cl = Split(rw(i), ",")
        For j = 0 To UBound(cl)
            a(i + 1, j + 1) = cl(j)
        Next
    Next
    Sheets("LC1").Cells(1, 1).Resize(UBound(a), UBound(a, 2)) = a
End Sub

Страницы: 1
Наверх