Запись в форматирование текста - PullRequest
0 голосов
/ 10 июля 2020

У меня есть куча данных в Excel, которые мне нужно записать в txt и которые мне нужно импортировать в другую программу. Это программное обеспечение имеет очень специфический формат c, и я понятия не имею, как создать код, который будет делать это именно так, как мне нужно.

Excel:

Excel

Это просто пример, здесь больше столбцов, фактическая версия и количество строк также варьируются. В текстовом файле результата это должно выглядеть так:

txt:

текст

Таким образом, ему нужен идентификатор из строки 2, за которым следует номер строки в скобках, затем знак равенства и соответствующее имя или дата в этом примере.

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 10 июля 2020

Вы можете использовать некоторый цикл по ячейкам на листе Excel вместе с некоторым вводом / выводом файла VBA для достижения этого. Ниже приведен код, который правильно работает с предоставленными образцами данных и должен указать вам правильное направление:

Sub sExportPersonData()
    On Error GoTo E_Handle
    Dim ws As Worksheet
    Dim intFile As Integer
    Dim strFile As String
    Dim lngLastRow As Long
    Dim lngLastCol As Long
    Dim lngRowLoop As Long
    Dim lngColLoop As Long
    Dim strOutput As String
    intFile = FreeFile
    strFile = "J:\downloads\person.txt"
    Open strFile For Output As intFile
    Set ws = ThisWorkbook.Worksheets("Sheet1")
    lngLastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    lngLastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
    For lngRowLoop = 3 To lngLastRow
        For lngColLoop = 2 To lngLastCol
            strOutput = ws.Cells(2, lngColLoop) & "[" & ws.Cells(lngRowLoop, 1) & "]=" & ws.Cells(lngRowLoop, lngColLoop)
            Print #intFile, strOutput
        Next lngColLoop
    Next lngRowLoop
sExit:
    On Error Resume Next
    Close #intFile
    Set ws = Nothing
    Exit Sub
E_Handle:
    MsgBox Err.Description & vbCrLf & vbCrLf & "sExportPersonData", vbOKOnly + vbCritical, "Error: " & Err.Number
    Resume sExit
End Sub

С уважением,

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