2016-07-28 3 views
-1

다음 코드를 사용하여 사용자가 폴더를 선택한 다음 각 파일이 수정 된 마지막 시간을 나열하도록합니다 (하루 동안 하나의 열과 다른 시간으로 하나씩). 세 번째 열은 파일 이름입니다.폴더의 파일 나열

Sub ListFils() 
Dim f As Object, fso As Object, flder As Object 
Dim folder As String 
Dim wb As Workbook, ws As Worksheet 

Set wb = ActiveWorkbook 
Set ws = ActiveSheet 
Set fso = CreateObject("Scripting.FileSystemObject") 

With Application.FileDialog(msoFileDialogFolderPicker) 
    .Show 
    If .SelectedItems.Count = 0 Then 
     MsgBox "Cancel Selected" 
     End 
    End If 
    folder = .SelectedItems(1) 
End With 

Range("A2").Select 
Range(Selection, Selection.End(xlToRight)).Select 
Range(Selection, Selection.End(xlDown)).Select 
Selection.ClearContents 


For Each f In fso.GetFolder(folder).Files 
    ws.Range("A" & ws.Rows.Count).End(xlUp).Offset(1, 0) = f.DateLastModified 
    ws.Range("B" & ws.Rows.Count).End(xlUp).Offset(1, 0) = f.DateLastModified 
    ws.Range("C" & ws.Rows.Count).End(xlUp).Offset(1, 0) = f.Name 


Next 
Columns("A:C").Columns.AutoFit 
Range("A2").Select 
Range(Selection, Selection.End(xlToRight)).Select 
Range(Selection, Selection.End(xlDown)).Select 
End Sub 

코드는 Windows에서 작동하지만 Mac에서는 작동하지 않습니다. 내가 어떻게 작동하도록 할 수있는 아이디어가 있습니까?

+0

"... 전혀 작동하지 않습니다."- 오류가 있습니까? 그것을 실행하지만 물건을 건너 뛰는거야? 전혀 작동하지 않습니까, 통보합니까? Mac에서 실행할 때 어떻게됩니까? – BruceWayne

+2

Mac에서는 스크립팅 라이브러리와 같은 Activex 객체를 사용할 수 없습니다. 당신은'Dir()'을 사용하여 같은 일을 할 수 있어야합니다. –

+0

@ BruceWayne, 그것은 나에게 아무것도주지 않습니다. 디버그 팝업이 나타납니다. @TimWilliams, 팁 주셔서 감사합니다,하지만 난 코딩의 첫 번째 단계에서 오전, 나는 그것을 사용하는 방법을 모르겠다. 'Dir()'을 사용하려고했지만이 명령으로 파일을 검색 할 수있었습니다. –

답변

0

팀은 자신의 의견, 라인 Set fso = CreateObject("Scripting.FileSystemObject") 및 Mac에서 작동하지 않습니다 fso에 의존 아무것도 말했지만, 당신은 수정 된 날짜를 얻을 수 FileDateTime("filename")을 파일 이름을 얻을 수 Dir()를 사용 할 수있다.