2016-09-14 57 views
0

我想了解下面的錯誤... Bassicaly I在Excel表格中列出一系列文件,我也在尋找爲每個文件添加標籤。 這不是Office文件的問題,因爲我使用「.BuiltinDocumentProperties(」Keywords「)。Value」。在Excel中使用VBA的.PDF(文件)的擴展文件屬性

但是,當涉及到PDF文件 我認爲這將是直接使用「.GetDetailsof()」,以獲得訪問擴展屬性。

嗯...由於某種原因,我得到了下面,

sValue = oDir.GetDetailsOf(oDir.Items, 18) 

'Returns the "Date Modified" 

雖然當我使用

sValue = objFile.DateLastModified 
'Returns the actual Value e.g. 09/11/2012 07:01:48 

有任何意見或建議,我將非常感激。

P.S.1我已經閱讀了與擴展文件屬性相關的Link。 我希望我不會錯過任何東西。

P.S.2爲了能值添加到我用的是File Meta Data

+0

不是 「修改日期」 3不是18? –

+0

如果你想要一個特定文件的值,那麼你需要'sValue = oDir.GetDetailsOf(objFile,18)' –

+0

@TimWilliams感謝您的快速響應! 在你的第一個評論你是正確的「修改日期」是3不是18,18是「標籤」,但我得到的是「標籤」,而不是「標籤」下的值是「221」 關於第二個評論我確實有這條線已經在我的代碼,但仍然沒有。 –

回答

0

PDF文件下面是一些代碼,提供的屬性可用什麼,以及如何訪問它們的概述。

摘自:http://windowssecrets.com/forums/showthread.php/157834-VBA-FileSystemObject-Properties-Dimensions-Size-and-Vertical-resolution

Sub GetDetails() 
    Dim oShell As Object 
    Dim oFile As Object 
    Dim oFldr As Object 
    Dim lRow As Long 
    Dim iCol As Integer 
    Dim vArray As Variant 
    vArray = Array(0, 1, 3, 4, 18) 


    Set oShell = CreateObject("Shell.Application") 
    lRow = 1 
    With Application.FileDialog(msoFileDialogFolderPicker) 
    .Title = "Select the Folder..." 
    If .Show Then 
     Set oFldr = oShell.Namespace(.SelectedItems(1)) 
     With oFldr 
     For iCol = 0 To 286 
      Cells(lRow, iCol + 1) = .getdetailsof(.items, iCol) 
     Next iCol 
     For Each oFile In .items 
      lRow = lRow + 1 
      For iCol = 0 To 286 
      Cells(lRow, iCol + 1) = .getdetailsof(oFile, iCol) 
      Next iCol 
     Next oFile 
     End With 
    End If 
    End With 
End Sub 
+0

感謝代碼非常方便,基本上檢查我選擇的文件夾下的3個「單詞」文件給我所有的屬性,除了1 PDF文件,儘管我有一個「標籤」和「作者」在它的值單元格返回空白。 –

+0

我不知道是否由於pdf上的屬性是在通過PDF文件上的Rclick安裝「文件元數據」(我上面有鏈接) 後給出的>屬性>詳細信息>標籤 –

相關問題