VBA内置文档属性
我有一个宏,它位于WorkbookA中并从WorkbookB检索数据。我想返回WorkbookB的“上次保存时间”,并将其放入WorkbookA中的一个单元格中。在下面的代码中,“lastsave”是指WorkbookA中的单元格的命名区域 我从各种网站和类似的问题上尝试了以下内容,但没有效果。我怀疑这个解决方案与对象、列表中的项目、值等有关,但我似乎无法确定 1) 错误:对象不支持此属性或方法VBA内置文档属性,vba,excel,Vba,Excel,我有一个宏,它位于WorkbookA中并从WorkbookB检索数据。我想返回WorkbookB的“上次保存时间”,并将其放入WorkbookA中的一个单元格中。在下面的代码中,“lastsave”是指WorkbookA中的单元格的命名区域 我从各种网站和类似的问题上尝试了以下内容,但没有效果。我怀疑这个解决方案与对象、列表中的项目、值等有关,但我似乎无法确定 1) 错误:对象不支持此属性或方法 Dim lastsavetime as Object set lastsavetime = Wo
Dim lastsavetime as Object
set lastsavetime = Workbooks(B).BuiltinDocumentProperties("Last Save Time")
Workbooks(A).Sheet1.Range("lastsave").Value = lastsavetime
Workbooks(A).Sheet1.Range("lastsave").Value = Workbooks(B).BuiltinDocumentProperties("Last Save Time").Value
2) 错误:自动化错误,未指定错误
Dim lastsavetime as variant
set lastsavetime = Workbooks(B).BuiltinDocumentProperties("Last Save Time")
Workbooks(A).Sheet1.Range("lastsave").Value = lastsavetime
3) 错误:对象“DocumentProperty”的方法“Value”失败
Workbooks(A).Sheet1.Range("lastsave").Value = Workbooks(B).BuiltinDocumentProperties("Last Save Time").Value
Dim propertylist as DocumentProperties
Set propertylist = Workbooks(B).BuiltinDocumentProperties
Workbooks(A).Sheet1.Range("lastsave").Value = (propertylist.Item("Last Save Time"))
4) 错误:对象不支持此属性或方法
Dim lastsavetime as Object
set lastsavetime = Workbooks(B).BuiltinDocumentProperties("Last Save Time")
Workbooks(A).Sheet1.Range("lastsave").Value = lastsavetime
Workbooks(A).Sheet1.Range("lastsave").Value = Workbooks(B).BuiltinDocumentProperties("Last Save Time").Value
5) 错误:对象“DocumentProperty”的方法“Value”失败
Workbooks(A).Sheet1.Range("lastsave").Value = Workbooks(B).BuiltinDocumentProperties("Last Save Time").Value
Dim propertylist as DocumentProperties
Set propertylist = Workbooks(B).BuiltinDocumentProperties
Workbooks(A).Sheet1.Range("lastsave").Value = (propertylist.Item("Last Save Time"))
试试这个:
Workbooks(A).Worksheets("Sheet1").Range(lastsave).Formula = Workbooks(B).BuiltinDocumentProperties("Last Save Time")
此处:A
是一个包含目标wb名称的字符串(“SaveTimeLog.xlsx”)B
是一个字符串,其中包含要为其捕获上次保存时间的wb的名称,例如“MyWB.xlsx”Sheet1
是要写入上次保存时间的工作表的名称,例如“Sheet1”lastsave
是一个字符串,包含对信息所在单元格的引用,例如“G4”
按原样,这会将上次保存时间写入数值。要以人性化的格式获取它,您可以将目标单元格格式化为日期/时间,或者通过将其封装在CStr()中来隐藏上面语句的右侧
仅供参考工作簿(A)。工作表1失败,因为工作簿(A)是工作簿对象。工作簿对象没有Sheet1方法或属性 假设您的工作簿B已打开,这适用于工作簿a中的模块
ThisWorkbook.Names("lastsave").RefersToRange.Value = Workbooks(B).BuiltinDocumentProperties("Last Save Time").Value
- 在错误1、3、4和5中:对象工作簿不支持方法Sheet1。使用
工作簿(A).工作表(1)
- 在错误2中,它应该是相同的消息。我不知道为什么错误消息发生了变化。出了点事
总之,正是
.Sheet1
引起了所有这些问题。请改用.sheets(1)
。.Sheet
不是工作簿
对象的属性?另外,您可能需要为工作簿对象在.Sheet上执行.Value=lastsavetime.Value
良好的点操作。我添加了工作手册(A),以明确问题中的数据去向,但实际上我只有Sheet1.Range。。。。我的道歉我明白这是多么的误导。我将按照您的建议尝试.Value=lastsavetime.Value。如果未设置属性,也可能会引发错误,例如,在新的/未保存的工作簿上。