我怎样才能知道,使用VBA,如果一个Excel工作簿曾经被保存?
我想知道,如果点击保存将文档保存到一个现有的位置或提示我选择保存位置。
If ActiveWorkbook.Path = vbNullString Then
'actions if the active workbook hasn't been saved yet go here
Else
'....
End If
名字(如第一册)是一个线索,尽管我认为someon可以简单地挽救他们的工作簿使用该名称。
更明确的检查可以是一个工作表函数,仅适用于一个工作簿保存一样简单。
'the following returns an empty string if used on an unsaved workbook
=CELL("filename", A1)
在VBA与外部使用时。地址属性将返回没有路径:= True参数。
?range("A1").Address(external:=true)
[Book1]Sheet5!$A$1
我发现这很有帮助。 .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