如何确定Excel工作簿是否至少已经使用VBA保存一次,而不是作为尚未保存的新工作簿。我不想检查当前是否已保存-仅当单击保存将文档保存到现有位置或提示我选择保存位置时。
答案 0 :(得分:7)
我发现这很有帮助。 .BuiltinDocumentProperties("last save time")
返回一个vbDate
(VarType
= 7),表示仅在文件已保存至少一次的情况下最后一次保存工作簿。否则,它将返回vbObject
(VarType
= 9)。
Function WbSavedAtLeastOnce(ByVal target As Workbook) As Boolean
' Returns TRUE if the target workbook has been saved at least once.
' .BuiltinDocumentProperties("last save time") returns a vbDate
' only if the file has been saved at least once.
WbSavedAtLeastOnce = VarType( _
target.BuiltinDocumentProperties("last save time")) = 7
End Function
使用如下功能:
Sub Test()
Dim wb As Workbook
Set wb = ActiveWorkbook
If WasSavedAtLeastOnce(wb) = True Then
MsgBox "This file has been saved at least once."
Else
MsgBox "This file has never been saved."
End If
End Sub
答案 1 :(得分:7)
名称(例如Book1)是一个线索,尽管我认为有人可以简单地用该名称保存他们的工作簿。
更清晰的检查可能与仅适用于已保存工作簿的工作表功能一样简单。
'the following returns an empty string if used on an unsaved workbook
=CELL("filename", A1)
在VBA中,当与External:= True参数一起使用时,.Address属性将不返回任何路径。
?range("A1").Address(external:=true)
[Book1]Sheet5!$A$1
答案 2 :(得分:2)
$lastcomment = end($comments);
echo $lastcomment->comment_content . '<br />';