2014-11-14 2 views
0

Я хочу экспортировать файл excel как csv с помощью макроса.Как экспортировать файл excel как csv с помощью макроса?

Но мой код экспортирует только заголовок каждого столбца, а не все записи, введенные в файл excel, и отображение заголовка во второй строке вместо первой строки.

Как это исправить?

В добавлении, что, если есть новый столбец и новые записи, введенные в файл excel. Как определить это в макросе? Возможно? Спасибо

Macro: выход

Sub WriteCSVFile() 

Dim My_filenumber As Integer 
Dim logSTR As String 

My_filenumber = FreeFile 

logSTR = logSTR & Cells(1, "A").Value & " , " 
logSTR = logSTR & Cells(1, "B").Value & Format(Now, "yyyyMMddhhmmss") & " , " 
logSTR = logSTR & Cells(1, "C").Value & Format(Now, "yyyyMMddhhmmss") & " , " 
logSTR = logSTR & Cells(1, "D").Value & " , " 
logSTR = logSTR & Cells(1, "E").Value & " , " 
logSTR = logSTR & Cells(1, "F").Value & " , " 
logSTR = logSTR & Cells(1, "G").Value & " , " 
logSTR = logSTR & Cells(1, "H").Value & " , " 
logSTR = logSTR & Cells(1, "I").Value & " , " 
logSTR = logSTR & Cells(1, "J").Value & " , " 
logSTR = logSTR & Cells(1, "K").Value & " , " 
logSTR = logSTR & Cells(1, "L").Value & " , " 
logSTR = logSTR & Cells(1, "M").Value 

Open "C:\Users\username\foldername\Sample.csv" For Append As #My_filenumber 
    Print #My_filenumber, logSTR 
Close #My_filenumber 

End Sub 

Желания:

Header1, Header2, Header3, Header4 
1234456, 10/10/2014, Marc, 24 
+0

Вашего желаемым результатом, кажется, не соответствует коду. Возможно, посмотрите на этот недавний поток, который может помочь. http://stackoverflow.com/questions/26676354/macro-for-exporting-text-files-from-excel-file-with-multiple-worksheets/26676831#26676831 – barryleajo

+0

@barryleajo Я пробую этот первый скрипт, и я получаю сообщение об ошибке , говорит: «Вне диапазона», во втором скрипте, он всегда повторяет шаг сохранения и когда я проверяю csv. Нет записей – User014019

+0

Да - подумайте о примере как возможном шаблоне, который вы должны изменить, чтобы соответствовать вашим данным и требованиям. Это было написано для требования в этом вопросе, а не для вас. – barryleajo

ответ

0

Я уже решить вопрос с этим

Dim DirLoc As Variant 

DirLoc = "pathname" 

'~~> Check if it is a valid entry 
If DirLoc <> False Then 
    '~~> Check before hand if the file exists 
    If Not Dir(DirLoc) <> "" Then 
     '~~> If not then save it 
     ActiveWorkbook.SaveAs Filename:=DirLoc 
    Else 
     '~~> Trap the error and ignore it 
     On Error Resume Next 
     If Err.Number = 1004 Then 
      On Error GoTo 0 
     Else '<~~ If user press Save 
      ActiveWorkbook.SaveAs Filename:=DirLoc, _ 
      FileFormat:=xlCSV, _ 
      ConflictResolution:=xlLocalSessionChanges 
     End If 
    End If 
End If 
Смежные вопросы