将文件属性粘贴到Excel中

时间:2015-03-11 22:26:54

标签: excel excel-vba vba

我有许多JPEG图像文件(大约8,000!),我想将属性复制到excel中 - 文件名和拍摄特定照片的时间。

我喜欢它,如果有一种快速简便的方法将这些信息复制到单独的单元格中,而不是我必须单独输入它们。页面的格式很简单 - 日期,时间和名称三列。

我根本不是程序员,所以最简单的解决方案(如果有的话)和语言最有帮助!

干杯

1 个答案:

答案 0 :(得分:0)

为什么我不能正常回答我发现这个有趣的无代码问题。

在Windows 7上,我可以使用下面的DateTaken获取Shell。我从之前的经验(参见get list of subdirs in vba)了解到Detailsof可能因操作系统而异。

请更新以下代码以指向您的目录(目前 c:\ temp

这适用于我,但确实在我尚未设法清理的日期字段中留下了其他字符(?CHR63

Sub JPG_Details()

Dim objShell  As Object
Dim objFolder As Object
Dim objFolderItem As Object
Dim lngCnt As Long

'If StrDir is dimensioned as a string, ParseName fails. Weird but true
Dim strDir
Dim strFile As String
Dim X(1 To 10000, 1 To 3)


Set objShell = CreateObject("shell.application")
strDir = "C:\temp\"
Set objFolder = objShell.Namespace(strDir)

strFile = Dir(strDir & "*.jpg")

Do While Len(strFile) > 0
    lngCnt = lngCnt + 1
    Set objFolderItem = objFolder.ParseName(strFile)
    X(lngCnt, 1) = strFile
    X(lngCnt, 2) = Split(objFolder.GetDetailsOf(objFolderItem, 12), " ")(0)
    X(lngCnt, 3) = Split(objFolder.GetDetailsOf(objFolderItem, 12), " ")(1)
    strFile = Dir
Loop

[a1].Resize(UBound(X, 1), UBound(X, 2)).Value2 = X

End Sub