2014-07-09 1 views
1

여러 개의 (정확히 5 개) .csv 파일이 하나의 폴더에 있고 폴더에있는 csv 파일을 선택하고 파일을 가져올 매크로를 만들고 싶습니다. 매크로 사용 가능 파일.여러 개의 .CSV를 매크로 사용 시트로 가져 오기

  1. 엽니 다 main.xlsm
  2. 을 눌러 "가져 오기 CSV의"
  3. 이 자동으로 브라우저를 열 것을 말한다 도구 모음에서 매크로 버튼을 : 여기에 내가 무엇을 원하는위한 단계에 의해 단계입니다 창문을 열고 CSV의 어딘가를 찾아 보자.
  4. OK와 BOOM을 누른다! 모든 CSV 파일이 xlsm으로 내보내지고 현재 빈 시트의 별도 시트 임

나는 여러 가지 방법으로이 작업을 시도했지만 올바른 경로에 있다고 생각하지 않습니다. 여기 하나 : 하나의 파일에 모든 CSV를 추가 같은

+0

파일을 선택해야합니까, 아니면이 폴더의 모든 파일입니까? – brettdj

+0

가져 오기 또는 내보내기 하시겠습니까? 귀하의 질문에 모두 말한다. 실제 문제/오류는 무엇입니까? –

+1

질문에 대답했지만 기본적으로 xlsm 파일에 CSV 파일을 가져 오려고했습니다. 따라서 ** CSL을 xlsm으로 내 보낸 다음 ** 단일 xlsm 파일로 가져 오기 **합니다. 도와 주셔서 감사합니다 @ brettdj! – pol5600

답변

0

뭔가 주어진 어떤 도움

Sub convert_to_macro() 

    'This first line is crap though. It only lets you export it to a certain place 

    ChDir "C:\Users\pal\Documents\CMSe\Lucys Computer" 

    With Application.FileDialog(msoFileDialogFilePicker) 
     .Show 
     If .SelectedItems.Count = 0 Then 
      MsgBox "Cancel Selected" 
      Exit Sub   
     End If 

     something = .SelectedItems(1) 
    End With 

    ActiveWorkbook.SaveAs Filename:= _ 
    "something.xltm", _ 
    FileFormat:=xlOpenXMLTemplateMacroEnabled, Password:="", WriteResPassword _ 
    :="", ReadOnlyRecommended:=False, CreateBackup:=False 

End Sub 

감사합니다.

Sub convert_to_macro() 
Dim Wb As Workbook 
Dim Wb1 As Workbook 
Dim fd As FileDialog 
Dim strWB 

Set fd = Application.FileDialog(msoFileDialogFilePicker) 
With fd 
    'set initial directory to search 
    .InitialFileName = "c:\temp" 
    .Filters.Clear 
    .Filters.Add "csv files", "*.csv" 
    .Show 
    If .SelectedItems.Count = 0 Then 
      MsgBox "No selection, exiting" 
      Exit Sub 
    End If 
End With 

With Application 
    .ScreenUpdating = False 
    .EnableEvents = False 
    .DisplayAlerts = False 
End With 

Set Wb = Workbooks.Add(1) 

For Each strWB In fd.SelectedItems 
Set Wb1 = Workbooks.Open(strWB) 
Wb1.Sheets(1).Copy after:=Wb.Sheets(Wb.Sheets.Count) 
Wb1.Close False 
Next 

Wb.Sheets(1).Delete 

With Application 
    .ScreenUpdating = True 
    .EnableEvents = True 
    .DisplayAlerts = True 
End With 

End Sub 
+0

그게 효과가있어 !! 도움을 주셔서 대단히 감사합니다. – pol5600

관련 문제