分享成果,随喜真能量。大家好,今天继续和大家分享VBA编程中常用的简单“积木”过程代码第74-75讲。这也是我“搭积木”编程中利用到的积木库。
越简单的事物往往越容易理解,简单的过程组合起来就是一个复杂的过程,我们要先认真掌握这些简单的过程,才能在可以为我们复杂的工程服务。
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
代码的解析说明:本示例中的函数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方法。
下面是我根据自己20多年的VBA实际利用经验,编写的四部经验教程,这些是较大块的“积木”,可以独立的完成某些或者某类系统的过程,欢迎有需要的朋友联络(WeChat:NZ9668)分享。利用这些可以提高自己的编程效率,选择好积木,搭好积木。
第一套:《VBA代码解决方案》是VBA中各个知识点的讲解,覆盖了绝大多数的知识点。
第二套:《VBA数据库解决方案》是数据处理的利器;
第三套:《VBA数组与字典解决方案》中讲解VBA的精华----字典。
第四套:面向初学及中级以下学员的视频《VBA代码解决方案》正在录制。 “每天20分钟,半年精进VBA”活动正在火热进行中,越早参与,回馈越多。现在第一册48讲内容已经录制完成。录制到第二册59讲的课程。
上述教程中第一、二、三是PDF教程,第四套教程是视频教程。其中视频教程的优惠活动正在进行中。