我有以下代码用于获取某些jpg文件的日期属性。我想要它,所以我可以从中提取day()
month()
和year()
。它大部分时间都有效,但偶尔会有一些流氓?
。我试过getproperty1 = Replace(getproperty1, "?", "")
然而这不起作用(并没有真正期待它)
intPos = InStrRev(strFile, "\")
strPath = Left(strFile, intPos)
strName = Mid(strFile, intPos + 1)
''debug.print intPos & " .. " & strPath & " .. " & strName
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(strPath)
Set objFolderItem = objFolder.ParseName(strName)
If Not objFolderItem Is Nothing Then
getproperty1 = objFolder.GetDetailsOf(objFolderItem, n)
If getproperty1 = vbNullString Then
getproperty1 = objFolder.GetDetailsOf(objFolderItem, 4)
End If
我希望它至少可以作为日期阅读,因为我将把它全部传回一个重复的文件(请参阅Rotate a saved image with vba了解更多关于我用它做什么的想法)使用我从Chip Pearson的网站(http://www.cpearson.com/excel/FileTimes.htm)修改了一些代码,将其写回日期时为Double
的文件(因此将在Dateserial()+Timeserial()
运行{{1}}有理由阻止我直接在两者之间传递日期时间,因为我有时需要在两位代码之间进行修改。
答案 0 :(得分:0)
我使用了一个字符条功能来遍历每个单独的字符,消除了任何不是数字的东西,":"或空格,然后通过DateValue()
将其作为可识别的日期格式。现在就像魅力一样!
Function stripChars(chrStrp As String)
stripChars = ""
For cnt = 1 To Len(chrStrp)
tmpChar = Mid(chrStrp, cnt, 1)
If Val(tmpChar) <> 0 Or tmpChar = "0" Or tmpChar = "/" Or tmpChar = " " Or tmpChar = ":" Then
stripChars = stripChars & tmpChar
End If
Next cnt
Debug.Print stripChars
stripChars = DateValue(stripChars)
End Function