Excel VBA解读(86):保存工作簿

 

讲解Workbook对象的Save方法和SaveAs方法,以及应用示例。...





可以使用Workbook对象的Save方法保存工作簿,其语法为:

Workbook对象.Save

下面的示例代码用来保存当前工作簿:

Sub SaveWB()

ActiveWorkbook.Save

End Sub

如果首次保存工作簿,则要使用SaveAs方法来指定工作簿的名称。其语法为:

Workbook对象.SaveAs(FileName,FileFormat,Password,WriteResPassword,ReadOnlyRecommended,CreateBackup,AccessMode,ConflictResolution,AddToMru,TextCodepage,TextVisualLayout,Local)

将某个工作簿另存为指定名称的工作簿。可以看到,SaveAs方法的参数很多,其中:

  • 所有参数均为可选参数。
  • 参数FileName指定要保存的工作簿的名称。可以提供保存的路径,否则将保存到当前文件夹中。
  • 参数FileFormat指定工作簿保存的格式。
  • 参数Password指定保存的工作簿的密码,区分大小写。
  • 参数WriteResPassword指定工作簿的写保护密码。如果使用密码保存工作簿并且在打开时未提供密码,则以只读方式打开该工作簿。
  • 参数CreateBackup设置为True时,创建工作簿的备份。
  • 参数AddToMru设置为True时,将工作簿添加到最近使用文件列表中。


示例代码1:保存所有打开的工作簿

下面的代码保存所有打开的工作簿。

Sub SaveAllWb()

Dim wb As Workbook

For Each wb In Workbooks

wb.Save

Next wb

End Sub

示例代码2:添加新工作簿并以指定的名称保存该工作簿

下面的代码先添加一个新工作簿,然后以变量strName指定的字符串保存该工作簿。

Sub AddWBAndSave()

Dim wbNewWorkbook As Workbook

Dim strName As String

strName = "test3"

Set wbNewWorkbook = Workbooks.Add

wbNewWorkbook.SaveAs Filename:=strName

End Sub

示例代码3:替换现有的工作簿

在使用SaveAs方法指定文件名保存工作簿时,如果刚好存在同名的工作簿文件,那么Excel就会给用户一条警告消息,提示用户确定是否覆盖已存在的文件。

如果希望覆盖已存在的文件,而不想每次都弹出警告消息,可以使用下面的代码:

Sub ReplaceExistWb()

Dim wbNewWorkbook As Workbook

Dim strName As String

strName = "test3"

Set wbNewWorkbook = Workbooks.Add

Application.DisplayAlerts = False

wbNewWorkbook.SaveAs Filename:=strName

Application.DisplayAlerts = True

End Sub

其中,使用了Application对象的DisplayAlerts属性来屏蔽警告消息。

如果不希望覆盖已存在的工作簿文件,那么可以给工作簿一个新的名称:

Sub SaveAsWbAvoidNameSame()

Dim wbNewWorkbook As Workbook

Dim strName As String

Dim strNewName As String

Dim i As Integer

strName = "test3"

i = 0

Set wbNewWorkbook = Workbooks.Add

strNewName = strName

Do While blnFileExists(strNewName & ".xls*")

i = i + 1

strNewName = strName & i

Loop

wbNewWorkbook.SaveAs Filename:=strNewName

End Sub

Function blnFileExists(strFile AsString) As Boolean

If Dir(strFile)

"" Then

blnFileExists = True

End If

End Function

代码使用了自定义函数 blnFileExists来检查是否存在同名文件,如果存在则返回True。如果存在同名文件,则以该文件名后加上一个顺序数字来为新工作簿命名。

本文为原创文章,转载请注明出处。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

欢迎关注[完美Excel]微信公众号:

方法1—在微信通讯录中搜索“完美Excel”或者“excelperfect”后点击关注。

方法2—扫一扫下面的二维码


    关注 完美Excel


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册