越簡單的事物往往越容易理解,簡單的過程組合起來就是一個復雜的過程,我們要先認真掌握這些簡單的過程,才能在可以為我們復雜的工程服務。
VBA過程代碼74:判斷工作簿是否已打開,'如果該工作簿已打開則子過程返回真
Sub MyNZ()
MsgBox '如果工作簿未打開,則打開該工作簿.'
If Not WorkbookOpen('工作簿名.xls') Then
Workbooks.Open '工作簿名.xls'
End If
End Sub
Function WorkbookOpen(WorkBookName As String) As Boolean
WorkbookOpen = False
On Error GoTo WorkBookNotOpen
If Len(Application.Workbooks(WorkBookName).Name) > 0 Then
WorkbookOpen = True
MsgBox '該工作簿已打開'
Exit Function
End If
WorkBookNotOpen:
End Function
代碼的解析說明:本示例中的函數(shù)WorkbookOpen用來判斷工作簿是否打開。代碼中,'工作簿名.xls'代表所要打開的工作簿名稱。
VBA過程代碼75:用與活動工作簿相同的名字但后綴名為.bak備份工作簿
Sub MyNZ()
Dim awb As Workbook, BackupFileName As String, i As Integer, OK As Boolean
If TypeName(ActiveWorkbook) = 'Nothing' Then Exit Sub
Set awb = ActiveWorkbook
If awb.Path = '' Then
Application.Dialogs(xlDialogSaveAs).Show
Else
BackupFileName = awb.FullName
i = 0
While InStr(i + 1, BackupFileName, '.') > 0
i = InStr(i + 1, BackupFileName, '.')
Wend
If i > 0 Then BackupFileName = Left(BackupFileName, i - 1)
BackupFileName = BackupFileName & '.bak'
OK = False
On Error GoTo NotAbleToSave
With awb
Application.StatusBar = '正在保存工作簿...'
.Save
Application.StatusBar = '正在備份工作簿...'
.SaveCopyAs BackupFileName
OK = True
End With
End If
NotAbleToSave:
Set awb = Nothing
Application.StatusBar = False
If Not OK Then
MsgBox '備份工作簿未保存!', vbExclamation, ThisWorkbook.Name
End If
End Sub
代碼的解析說明:在當前工作簿中運行本示例代碼后,將以與工作簿相同的名稱但后綴名為.bak備份工作簿,且該備份與當前工作簿在同一文件夾中。其中,使用了工作簿的FullName屬性和SaveCopyAs方法。