2015-07-02 2 views
0

Я хочу сгенерировать файл excel в .txt файл и сделать некоторый цикл. Например, как это:Сгенерируйте файл Excel в файл .txt и сделайте некоторый цикл

В Excel:

A | B | C | D 
--+---+---+--- 
1 | 5 | 9 | 1 
A | H | U | I 

Будет генерировать в .txt, как это:

"A", "1" 
"B", "5" 
"C", "9" 
"D", "1" 
"A", "A" 
"B", "H" 
"C", "U" 
"D", "I" 

Отредактировано: Это мое кодирование

Private Sub CommandButton1_Click() 
Dim sFirst As String 
Dim sSecond As String 
Dim sThird As String 
Dim sFourth As String 
Dim sFName As String 
Dim intFNumber As Integer 
Dim lHeader As Long 
Dim lLastRow As Long 
Sheet1.Activate 
Range("A1").Select 
With Sheet1 
    lLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 
End With 

sFName = ThisWorkbook.Path & "\Date" & Format(Now(), "yyyymmddhhmmss") & ".xls" 

'Get an unused file number 
intFNumber = FreeFile 

'Create a new file (or overwrite an existing one) 
Open sFName For Output As #intFNumber 

For lHeader = 1 To lLastRow 
    With Sheet1 
     'For header 
     sFirst = .Cells(lHeader, 1) 
     sSecond = .Cells(lHeader, 2) 
     sThird = .Cells(lHeader, 3) 
     sFourth = .Cells(lHeader, 4) 
    End With 

    'Write selected data to text file 
    Write #intFNumber, sFirst, sSecond , sThird, sFourth 
Next lHeader 
Close #intFNumber 

MsgBox "Values from sheet '" & Sheet1.Name & "' were written to '" & sFName & "' file!", vbInformation 

End Sub 

Но он генерируется только так:

"A", "1" 

"B", "5" 

"C", "9" 

"D", "1" 
+0

Вы еще что-нибудь пробовали? – Cleb

+0

У меня есть, но он только генерирует это: я хочу сгенерировать файл excel в .txt-файл и сделать некоторый цикл. Например, как это: "А", "1" "B", "5" "C", "9" "D", "1" @Cleb – stillLearning

+0

@bonCodigo Я обновил свой вопрос с некоторыми кодирование .. – stillLearning

ответ

0

Заменить

Write #intFNumber, sFirst, sSecond , sThird, sFourth 

с

Print #intFNumber, sFirst , sSecond , sThird, sFourth & Chr(10) 

Чтобы добавить новые строки добавить & Chr(10) или & vbNewLine

+0

Письмо идет по строке. При использовании печати вы можете захотеть добавить разделители и котировки, которые вам нужны. 'Print' не добавляет те, в отличие от' Write'. – bonCodigo

+0

Я пробовал, но это не так, как ожидалось. После изменения Напишите для печати: «A», «1», «A» «B», «5», «H» «C», «9», «U» «D», «1», , "I" – stillLearning

+0

См. Обновленное сообщение - я думал, что вы хотите отказаться от кавычек? Добавьте 'Chr (10)' или 'Chr (13)' или 'vbNewLine', чтобы добавить новую строку –

1

Попробуйте это:

'Write selected data to text file 
Write #intFNumber, "A", sFirst 
Write #intFNumber, "B", sSecond 
Write #intFNumber, "C", sThird 
Write #intFNumber, "D", sFourth 

вместо этого:

Write #intFNumber, sFirst, sSecond , sThird, sFourth 
+0

Большое вам спасибо. Теперь он может отображаться как ожидалось. @ ShA.t – stillLearning

Смежные вопросы