Сборка CSV-ячеек в Excel с макросом - PullRequest
1 голос
/ 30 декабря 2010

Итак, у меня есть макрос для экспорта данных в формат CSV, и он отлично работает (код внизу). Проблема в данных, которые я вкладываю в него. Когда я помещаю данные данные в это выходит

Firstname, Lastname, имя пользователя, пароль, описание

Я бы хотел изменить его, чтобы я получил

Имя Фамилия, Имя, Фамилия, имя пользователя, пароль, описание

Что я хотел бы сделать, так это манипулировать существующим макросом, чтобы выполнить это. Я не очень хорош в VBS, поэтому любой вклад или толчок в правильном направлении был бы фантастическим.

Спасибо!

Код принадлежит пользователю Chance2 http://www.excelforum.com/excel-programming/679620-set-up-macro-to-export-as-csv-file.html. Справедливо, и автор должен быть правильно приписан. Я прошу прощения за то, что сделал этот звук частным.

Sub Make_CSV()
Dim sFile As String
Dim sPath As String
Dim sLine As String

Dim r As Integer
Dim c As Integer

    r = 1 'Starting row of data

    sPath = "C:\CSVout\"
    sFile = "MyText_" & Format(Now, "YYYYMMDD_HHMMSS") & ".CSV"

    Close #1
    Open sPath & sFile For Output As #1
    Do Until IsEmpty(Range("A" & r))
    'You can also Do Until r = 17 (get the first 16 cells)
        sLine = ""
        c = 1
        Do Until IsEmpty(Cells(1, c))
           'Number of Columns - You could use a FOR / NEXT loop instead
            sLine = sLine & """" & Replace(Cells(r, c), ";", ":") & """" & ","
            c = c + 1
        Loop
        Print #1, Left(sLine, Len(sLine) - 1) 'Remove the trailing comma
        r = r + 1
    Loop
    Close #1
End Sub

1 Ответ

2 голосов
/ 30 декабря 2010

Самым простым изменением будет присвоение sLine с конкатенацией «Имя Фамилия», т. Е.:

Do Until IsEmpty(Range("A" & r))
'You can also Do Until r = 17 (get the first 16 cells)
    sLine = """" & Replace(Cells(r,1) & " " & Cells(r,2), ";", ":") + ""","
    c = 1
    Do Until IsEmpty(Cells(1, c))
       'Number of Columns - You could use a FOR / NEXT loop instead
        sLine = sLine & """" & Replace(Cells(r, c), ";", ":") & """" & ","
        c = c + 1
    Loop
    Print #1, Left(sLine, Len(sLine) - 1) 'Remove the trailing comma
    r = r + 1
Loop
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...