如何用vba给excel工作簿批量设置添加打开密码? 您所在的位置:网站首页 怎样给文件设密码excel 如何用vba给excel工作簿批量设置添加打开密码?

如何用vba给excel工作簿批量设置添加打开密码?

2024-07-11 21:45| 来源: 网络整理| 查看: 265

如何用vba给excel工作簿设置添加打开密码? 2019年11月25日 作者:水星Excel 11,881 次浏览 评论关闭

各位网友,大家好。

今天给大家介绍如何用vba批量给excel工作簿设置添加打开密码。

今天的内容主要分为以下三个部分:

手动设置添加打开密码; 在vba中用工作簿Workbook对象的SaveAs方法设置添加打开密码; 在vba中用工作簿Workbook对象的Password属性的方式设置添加打开密码。 一、手动设置添加打开密码

在excel中,如果想要给某个工作簿添加打开密码,可以在“另存为”对话框中的“工具”按钮内的“常规选项”中进行设置,如下图所示:

 

二、在vba中用工作簿Workbook对象的SaveAs方法设置添加打开密码

在vba中可以直接使用Workbook对象的SaveAs方法在将某个工作簿另存为时,设置添加打开密码。

它的语法如下:

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

其中参数Password表示打开密码。

以下是一个将当前excel工作簿另存为具有打开密码”abc”的vba代码:

Sub QQ1722187970() Dim oWB As Workbook Set oWB = Excel.ThisWorkbook oWB.SaveAs "d:\test.xlsm", xlOpenXMLWorkbookMacroEnabled, "abc" End Sub

执行上述代码后保存关闭,重新打开excel工作簿会弹出输入打开密码的提示,如下图所示:

 

三、在vba中用工作簿Workbook对象的Password属性的方式设置添加打开密码

除了可以用Workbook对象的SaveAs方法在将某个工作簿另存为时,设置添加打开密码外,还可以通过直接设置Workbook对象的Password属性值的方式给excel工作簿设置打开密码。

以下是为当前excel工作簿设置打开密码”abc”的vba代码:

Sub QQ1722187970() Dim oWB As Workbook Set oWB = Excel.ThisWorkbook oWB.Password = "abc" End Sub

用这种方法设置打开密码,不仅可以为尚未设置打开密码的excel工作簿添加打开密码,还可以修改已经有打开密码的excel工作簿的密码为其它密码。

四、批量给同一文件夹下的所有Excel工作簿添加打开密码

如果要批量给同一文件夹下的所有Excel工作簿添加打开密码,可以使用如下的代码:

Sub QQ1722187970() Excel.Application.Calculation = xlCalculationManual Excel.Application.DisplayAlerts = False Dim oWB As Workbook Dim sPath As String sPath = GetPath Dim sResult As String '查找第一个文件,第一次使用dir函数 sResult = Dir(sPath & "\*.xls*") If Len(sResult) Then Set oWB = Excel.Workbooks.Open(sPath & "\" & sResult) oWB.SaveAs sPath & "\" & sResult, , "test" oWB.Close Debug.Print sResult Do '重复使用dir函数,此时不用输入任何参数 sResult = Dir Debug.Print sResult If Len(sResult) Then Set oWB = Excel.Workbooks.Open(sPath & "\" & sResult) oWB.SaveAs sPath & "\" & sResult, , "test" oWB.Close End If '直到返回的字符串为空字符串,表示遍历结束 Loop Until Len(sResult) = 0 End If Excel.Application.DisplayAlerts = True Excel.Application.Calculation = xlCalculationAutomatic End Sub Function GetPath() As String '声明一个FileDialog对象变量 Dim oFD As FileDialog ' '创建一个选择文件对话框 ' Set oFD = Application.FileDialog(msoFileDialogFilePicker) '创建一个选择文件夹对话框 Set oFD = Application.FileDialog(msoFileDialogFolderPicker) '声明一个变量用来存储选择的文件名或者文件夹名称 Dim vrtSelectedItem As Variant With oFD '允许选择多个文件 .AllowMultiSelect = True '使用Show方法显示对话框,如果单击了确定按钮则返回-1。 If .Show = -1 Then '遍历所有选择的文件 For Each vrtSelectedItem In .SelectedItems '获取所有选择的文件的完整路径,用于各种操作 GetPath = vrtSelectedItem Next '如果单击了取消按钮则返回0 Else End If End With '释放对象变量 Set oFD = Nothing End Function 其它相关文章推荐:如何用vba批量保护或取消保护excel工作表?如何用vba保存excel工作簿?如何用excel函数公式返回工作簿文件所在的文件夹路径?如何用vba将多个工作表另存为独立的工作簿文件?如何在已知打开密码的前提下把excel工作簿的打开密码取消?如何用vba把excel文件发布转化为pdf格式文件? 分类 :  EXCEL VBA , VBA 标签 :  Password , 保护密码 , 打开密码 , 批量 , 添加 , 设置        

声明: 本站文章均属原创,未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则视为侵权。如果想要每天都收到本站的技术文章推送,可以微信搜索公众号:水星Excel或者Excel_Office关注。其它事宜请加QQ:1722187970 或微信号:xycgenius 联系。 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有