экспортировать столбцы Excel в несколько текстовых файлов - PullRequest
0 голосов
/ 11 января 2019

Input

Output

Мне нужно разбить данные [1 ... M], собранные в столбцах [A ... N], на отдельные текстовые файлы, названные в качестве первой ячейки каждого столбца.

Данные в Excel:

FileName_A  |FileName_B |FileName_C |…      |FileName_N
Data_A1     |Data_B1        |Data_C1        |…      |Data_N1
Data_A2     |Data_B2        |Data_C2        |…      |Data_N2
Data_A3     |Data_B3        |Data_C3        |…      |Data_N3
…       …       …       …       …
DataA_AM    DataA_BM    DataA_CM    DataA_AM    DataA_NM
____________________________________________________________________________

записывается в FileNames

FileName_A.tex должен выглядеть так:

_____________
Data_A1
Data_A2
Data_A3
…
DataA_AM
____________

Я пытался, но ...

Хотя для эксперта это кажется легкой задачей, для меня это довольно сложная задача, потому что я не знаком с кодированием.

Большое спасибо за поддержку заранее.

Ответы [ 2 ]

0 голосов
/ 11 января 2019

Попробуйте код ниже.

    Sub export_data()
    Dim row, column, i, j As Integer
    Dim fullPath, myFile As String

    fullPath = "C:\Workspace"
    row = 21
    column = 5

    For i = 1 To column
        myFile = Cells(1, i).Value + ".txt"
        myFile = fullPath + "/" + myFile
        Open myFile For Output As #1
        For j = 2 To row
            Print #1, Cells(j, i).Value
        Next j
        Close #1
    Next i

    End Sub

Вы можете изменить номер строки и номер столбца. Ваш первый ряд всегда является заголовком. См. Изображение ниже для Excel

Изображение Excel

0 голосов
/ 11 января 2019

Итак, я предположил, что M - это целочисленная переменная, которую вы уже определили, а N - только имя столбца (то есть номер столбца 14). Код будет тогда

Dim i As Integer
Dim LastRow As Integer

For i = 1 To 14

Range(Cells("2", i), Cells(M, i)).ExportAsFixedFormat _
    Type:=xlTypeXPS, _
    Filename:=Sheets(1).Cells("1", i), _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False

Next

Возможно, вы захотите заменить Filename:=Sheets(1).Cells("1", i), _ на Filename:="C:/Your_Path/ & Sheets(1).Cells("1", i), _

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