2015-09-29 65 views
1

我有一個宏位於WorkbookA中並從WorkbookB中檢索數據。我想返回WorkbookB的「最後保存時間」並將其放入WorkbookA中的單元格中。在下面的代碼中,「lastsave」是指在WorkbookA中引用單元格的命名範圍。VBA BuiltInDocumentProperties

我試過以下從各種網站和類似的問題,但無濟於事。我懷疑這個解決方案與對象,列表中的項目,值等有關,但我似乎無法把它放在手指上。

1)錯誤:對象不支持此屬性或方法

Dim lastsavetime as Object 
set lastsavetime = Workbooks(B).BuiltinDocumentProperties("Last Save Time") 
Workbooks(A).Sheet1.Range("lastsave").Value = lastsavetime 

2)錯誤:自動化錯誤,未指定的錯誤

Dim lastsavetime as variant 
set lastsavetime = Workbooks(B).BuiltinDocumentProperties("Last Save Time") 
Workbooks(A).Sheet1.Range("lastsave").Value = lastsavetime 

3)錯誤:對象的方法 '值' 'DocumentProperty'失敗

Workbooks(A).Sheet1.Range("lastsave").Value = Workbooks(B).BuiltinDocumentProperties("Last Save Time").Value 

4)錯誤:對象不支持此屬性或方法

Workbooks(A).Sheet1.Range("lastsave").Value = Workbooks(B).BuiltinDocumentProperties("Last Save Time").Value 

5)錯誤:對象的方法'價值 'DocumentProperty' 失敗

Dim propertylist as DocumentProperties 
Set propertylist = Workbooks(B).BuiltinDocumentProperties 

Workbooks(A).Sheet1.Range("lastsave").Value = (propertylist.Item("Last Save Time")) 
+0

'.Sheet'不是'Workbook'對象的屬性嗎?另外,您可能需要執行'.Value = lastsavetime.value' –

+0

對於Workbook對象.Sheet的好處。我添加了工作簿(A),以明確數據的目的是爲了問題的目的,但實際上我只是有Sheet1.Range ....我的歉意,我可以看出這是如何誤導。我會按照你的建議嘗試.Value = lastsavetime.value。 – Doug

+0

如果該屬性尚未設置,即在新的/未保存的工作簿上,它也可能引發錯誤。 –

回答

0

試試這個:

Workbooks(A).Worksheets("Sheet1").Range(lastsave).Formula = Workbooks(B).BuiltinDocumentProperties("Last Save Time") 

這裏:
A是拿着名稱的字符串您的目的地wb(「SaveTimeLog.xlsx」)
B是一個字符串,其中包含您爲其所用的wb的名稱e捕獲最後的保存時間例如「MyWB.xlsx」
Sheet1是要寫入上次保存時間的工作表的名稱,例如, 「工作表Sheet1」
lastsave是抱着到單元格的引用一個字符串,其中信息去,例如,「G4」

正如這將最後寫節省時間的數值。要以人性化的格式獲取它,可以將目標單元格格式化爲日期/時間,或者通過將其封閉在CStr()中來隱藏上述語句的右側。

FYI工作簿(A).Sheet1失敗,因爲工作簿(A)是工作簿對象。沒有Sheet1方法或工作簿對象的屬性。

0

假設工作簿B被打開,這適用於一個模塊中的工作簿A.

ThisWorkbook.Names("lastsave").RefersToRange.Value = Workbooks(B).BuiltinDocumentProperties("Last Save Time").Value 
0
  • 在錯誤1,3,4和5:對象工作簿不支持該方法Sheet 1中。使用Workbooks(A).Sheets(1)

  • 在錯誤2中它應該是相同的消息。我不能告訴爲什麼錯誤信息已經改變。有些事情發生了。

總而言之,這是造成所有這些麻煩的.Sheet1。改爲使用.sheets(1)