일부 exif 데이터 (촬영 날짜, 카메라 제조사 및 모델)와 함께 모든 사진을 Excel에서 목록으로 가져오고 싶습니다.폴더의 특정 파일을 처리 할 때 오버플로 오류 6이 발생했습니다.
나는 약 3000 파일의 내 폴더에 대해 그것을 실행하고, 그것의 1796에 완벽하게 갔다.
나는 무슨 일이 일어나고 있는지를 알기 위해 "다음번에 오류 재개"를 주석 처리했다. 내가 폴더에서 이미 처리 된 사진을 이동하면
objExif.Load objFile.Path
는, 매크로 오류가 밖으로 바로 나머지를 검사 :
나는이 라인에 오류 6 오버플로를 얻었다. 새 폴더에서 이미 처리 된 그림에 대해 매크로를 실행하면 오류가 발생하지 않습니다.이것은 그림의 두 세트에 대해 다른 것이 있지만 내가 볼 수있는 것은 아무것도 없다는 결론에 도달했습니다. 두 세트는 편집되지 않은 디지털 사진이며 유효한 exif 데이터가 있습니다.
누군가 나를 도울 수 있기를 바랍니다.
코드 :
Private objFSO As Object, objTopFolder As Object, objSubFolder As Object, objFile As Object
Private i As Long
Private objExif As New ExifReader
Sub GetFiles()
On Error Resume Next
i = 2
Worksheets("Filelist").Range("A2:G5000").Value = ""
Worksheets("Paths").Range("A2:A5000").Value = ""
Worksheets("Data").Range("E15:E5000").Value = ""
If Sheets("Data").Range("B2").Value <> "" Then Call Filelist(Sheets("Data").Range("B2").Value, Sheets("Data").Range("C2").Value)
If Sheets("Data").Range("B3").Value <> "" Then Call Filelist(Sheets("Data").Range("B3").Value, Sheets("Data").Range("C3").Value)
If Sheets("Data").Range("B4").Value <> "" Then Call Filelist(Sheets("Data").Range("B4").Value, Sheets("Data").Range("C4").Value)
If Sheets("Data").Range("B5").Value <> "" Then Call Filelist(Sheets("Data").Range("B5").Value, Sheets("Data").Range("C5").Value)
If Sheets("Data").Range("B6").Value <> "" Then Call Filelist(Sheets("Data").Range("B6").Value, Sheets("Data").Range("C6").Value)
If Sheets("Data").Range("B7").Value <> "" Then Call Filelist(Sheets("Data").Range("B7").Value, Sheets("Data").Range("C7").Value)
If Sheets("Data").Range("B8").Value <> "" Then Call Filelist(Sheets("Data").Range("B8").Value, Sheets("Data").Range("C8").Value)
If Sheets("Data").Range("B9").Value <> "" Then Call Filelist(Sheets("Data").Range("B9").Value, Sheets("Data").Range("C9").Value)
If Sheets("Data").Range("B10").Value <> "" Then Call Filelist(Sheets("Data").Range("B10").Value, Sheets("Data").Range("C10").Value)
If Sheets("Data").Range("B11").Value <> "" Then Call Filelist(Sheets("Data").Range("B11").Value, Sheets("Data").Range("C11").Value)
Sheets("Filelist").Range("G1:G10000").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheets("Data").Range("E15"), Unique:=True
Sheets("Filelist").Range("B2").Select
End Sub
Sub Filelist(TopFolder As String, includesub As String)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTopFolder = objFSO.GetFolder(TopFolder)
If includesub = "yes" Then
Call RecursiveFolder(objTopFolder, True)
Else
Call RecursiveFolder(objTopFolder, False)
End If
End Sub
Sub RecursiveFolder(objFolder As Scripting.Folder, IncludeSubFolders As Boolean)
For Each objFile In objFolder.Files
If Right(objFile.Name, 3) = "jpg" Or Right(objFile.Name, 3) = "JPG" Then
objExif.Load objFile.Path
txtDate = objExif.Tag(DateTimeOriginal)
txtmake = objExif.Tag(Make)
txtmodel = objExif.Tag(Model)
Worksheets("Filelist").Cells(i, 1) = objFile.Path
Worksheets("Paths").Cells(i, 1) = objFile.Path
Worksheets("Filelist").Cells(i, 2) = objFile.Name
Worksheets("Filelist").Cells(i, 3) = txtDate
Worksheets("Filelist").Cells(i, 4) = txtmake
Worksheets("Filelist").Cells(i, 5) = txtmodel
Worksheets("Filelist").Cells(i, 7) = Left(txtDate, 4)
i = i + 1
End If
Next objFile
If IncludeSubFolders Then
For Each objSubFolder In objFolder.SubFolders
Call RecursiveFolder(objSubFolder, True)
Next objSubFolder
End If
End Sub
파일의 크기는 어느 정도입니까? – Kyle
범위는 500 - 9900 kB –