2014-11-14 4 views
0

매크로를 사용하여 Excel 파일을 CSV로 내보내려고합니다.excel 파일을 매크로를 사용하여 CSV로 내보내는 방법은 무엇입니까?

그러나 내 코드는 각 열의 헤더 만 내보내고 Excel에서는 입력 한 전체 레코드가 아니라 첫 번째 행의 두 번째 행에 헤더가 표시됩니다.

해결 방법?

또한 새로운 열과 새로운 레코드가 Excel 파일에 입력되면 어떻게 될까요? 매크로에서 어떻게 결정합니까? 것이 가능하다? 주셔서 감사합니다

매크로

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 첫 번째 스크립트를 실행하면 오류가 발생합니다. , 두 번째 스크립트 동안 "out of range"라고 말하면 항상 save 단계를 반복하고 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 
관련 문제