2017-02-10 3 views
0

У меня есть электронная таблица Excel, которая имеет несколько столбцов (A-G) с информацией в строках 1-26. Я пытаюсь использовать скрипт VBA для преобразования только столбцов A и D в CSV-файл в столбцы A и B. Я смог преобразовать столбцы A и D, а A находится в правильной позиции (столбец A, строки 1-26), но столбец D заканчивается в столбце D и строках 27-52.Excel в CSV печатать определенные столбцы только с помощью VBA

Что мне не хватает, чтобы переместить столбец D в Excel на столбец B в CSV? Любая помощь будет принята с благодарностью! См. Мой текущий код ниже:

Dim file As Integer 
Dim filepath As Variant 
Dim filename As Variant 
Dim Row As Integer 
Dim Col As Integer 
Dim Data1 As String 
Dim Data2 As String 
Dim Line As String 
Dim LineValues() As Variant 
Dim OutputFileNum As Integer 
Dim PathName As String 
Dim SheetValues() As Variant 

file = FreeFile 
filepath = "C:\Users\berniea\" 
filename = filepath & "Options" & ".csv" 
Open filename For Output As #file 

SheetValues = Sheets("Features").Range("A1:H26").Value 
Redim LineValues(1 To 8) 

For Row = 2 To 26 
    For Col = 1 To 1 
     LineValues(Col) = SheetValues(Row, Col) 
    Next 
    Data1 = Join(LineValues, ",") 
    Print #file, Data1 
Next 

SheetValues = Sheets("Features").Range("A1:H26").Value 
Redim LineValues(1 To 8) 

For Row = 2 To 26 
    For Col = 4 To 4 
     LineValues(Col) = SheetValues(Row, Col) 
    Next 
    Data2 = Join(LineValues, ",") 
    Print #file, Data2 
Next 

Close #file 

End Sub 

ответ

0

Я думаю, что это более просто:

Dim text As String 
file = FreeFile 
filepath = "C:\Users\berniea\" 
filename = filepath & "Options" & ".csv" 
Open filename For Output As #file 
For Row = 2 To 26 
text = text + Cells(Row, 1) & "," & Cells(Row, 4) & vbNewLine 
Next Row 
Print #file, text 
Close #file 
+0

Это работает отлично !!! Спасибо! : D – Angela

+0

Добро пожаловать, в любое время;) –

1

Я упростил код для вас как можно больше.

Sub ColsAD() 
    Dim file As Integer: file = FreeFile 
    Open "C:\Users\berniea\Options.csv" For Output As #file 

    Dim row As Long, line As String 
    For row = 2 To 26 
     With Sheets("Features") 
      line = .Cells(row, 1) & "," & .Cells(row, 4) 
     End With 
     Print #file, line 
    Next 
    Close #file 
End Sub 
Смежные вопросы