各位网友,大家好。

今天给大家介绍如何用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代码:

Visual Basic

Sub QQ1722187970()

Dim oWB As Workbook

Set oWB = Excel.ThisWorkbook

oWB.SaveAs "d:\test.xlsm", xlOpenXMLWorkbookMacroEnabled, "abc"

End Sub

1

2

3

4

5

SubQQ1722187970()

DimoWBAsWorkbook

SetoWB=Excel.ThisWorkbook

oWB.SaveAs"d:\test.xlsm",xlOpenXMLWorkbookMacroEnabled,"abc"

EndSub

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

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

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

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

Visual Basic

Sub QQ1722187970()

Dim oWB As Workbook

Set oWB = Excel.ThisWorkbook

oWB.Password = "abc"

End Sub

1

2

3

4

5

SubQQ1722187970()

DimoWBAsWorkbook

SetoWB=Excel.ThisWorkbook

oWB.Password="abc"

EndSub

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

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

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

Visual Basic

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

SubQQ1722187970()

Excel.Application.Calculation=xlCalculationManual

Excel.Application.DisplayAlerts=False

DimoWBAsWorkbook

DimsPathAsString

sPath=GetPath

DimsResultAsString

'查找第一个文件,第一次使用dir函数

sResult=Dir(sPath&"\*.xls*")

IfLen(sResult)Then

SetoWB=Excel.Workbooks.Open(sPath&"\" & sResult)

oWB.SaveAs sPath & "\"&sResult,,"test"

oWB.Close

Debug.PrintsResult

Do

'重复使用dir函数,此时不用输入任何参数

sResult=Dir

Debug.PrintsResult

IfLen(sResult)Then

SetoWB=Excel.Workbooks.Open(sPath&"\" & sResult)

oWB.SaveAs sPath & "\"&sResult,,"test"

oWB.Close

EndIf

'直到返回的字符串为空字符串,表示遍历结束

LoopUntilLen(sResult)=0

EndIf

Excel.Application.DisplayAlerts=True

Excel.Application.Calculation=xlCalculationAutomatic

EndSub

FunctionGetPath()AsString

'声明一个FileDialog对象变量

DimoFDAsFileDialog

'    '创建一个选择文件对话框

'    Set oFD = Application.FileDialog(msoFileDialogFilePicker)

'创建一个选择文件夹对话框

SetoFD=Application.FileDialog(msoFileDialogFolderPicker)

'声明一个变量用来存储选择的文件名或者文件夹名称

DimvrtSelectedItemAsVariant

WithoFD

'允许选择多个文件

.AllowMultiSelect=True

'使用Show方法显示对话框,如果单击了确定按钮则返回-1。

If.Show=-1Then

'遍历所有选择的文件

ForEachvrtSelectedItemIn.SelectedItems

'获取所有选择的文件的完整路径,用于各种操作

GetPath=vrtSelectedItem

Next

'如果单击了取消按钮则返回0

Else

EndIf

EndWith

'释放对象变量

SetoFD=Nothing

EndFunction

excel服务器 微信设置密码,如何用vba给excel工作簿批量设置添加打开密码? - EXCEL VBA - ExcelOffice【微信公众号:水星Excel】...相关推荐

  1. VBA怎样关闭工作簿和退出Excel

    要用VBA来关闭工作簿,用Workbook.Close 方法即可,而要退出Excel,则用Application.Quit 方法: 关闭活动工作簿,如果工作簿有更改,提示是否保存: Sub Close ...

  2. Excel 2010 VBA 入门 100 将xls格式工作簿批量转换为xlsx格式

    目录 示例 代码 使用HasVBProject属性判断工作簿是否有代码 禁止打开工作簿时执行程序 示例 在某个文件夹下存有若干个以Excel 2003版本存储的工作簿(xls格式).将这些xls格式的 ...

  3. mac系统下word和excel设置文件打开密码,输入密码才能打开文件

    mac系统下word和excel文件设置打开密码,实现输入密码才能打开文件 word加密 word版本 菜单栏选择[工具]->[保护文档],然后弹窗中输入密码,即可完成加密 excel加密 ex ...

  4. Excel如何将表格快速复制到另一工作簿中

    如下图是某公司工资单,现在想要将此表格快速复制到其他工作簿中. 点击下图选项(Excel插件,百度即可了解详细的下载安装方法,本文这里不作详细叙述) 点击[工作表] 选择[复制表到多簿] 勾选[未打开 ...

  5. 微信公众号添加word文档附件教程_公众号添加Excel、PDF、PPT等附件教程

    写公众号文章时,有时候希望在公众号文末分享一些文档如Word.Excel.PDF之类的文档,但苦于公众号并不支持直接上传文件.插入超链接是个方案,但并不是所有的公众号都有此功能.并且微信内并不允许直接 ...

  6. 微信公众号添加Word文档附件教程_公众号添加Excel、PDF、PPT、Zip等附件教程

    编辑公众号文章时,有时候希望在公众号文末分享一些如Word.Excel.PDF.PPT.Zip之类的文档,但是由于公众号并不支持直接上传文件,所以导致很多编辑者不知道怎么给公众号文章添加附件.插入超链 ...

  7. EXCEL VBA创建sheet/工作簿

    1.需要创建以地市命名的系列sheet,但不想手动创建改名. 代码实现如下: Sub SheetAdd()Dim i As Long'定义一个长整型变量Sheets.Add After:=Sheets ...

  8. Excel VBA 合并不同工作簿的工作表到一个工作簿的不同工作表

    命令从下面第一个Sub开始: Sub 合并不同工作簿的工作表到一个工作簿的不同工作表() Excel.Application.ScreenUpdating = False Dim ARR() Dim ...

  9. extjs中store获取后台数据_Excel实战技巧64: 从工作簿中获取数据(不使用VBA)

    学习Excel技术,关注微信公众号: excelperfect 这是在研读<Escape From Excel Hell>时学到的技术,从本工作簿中或者其他工作簿中获取所需要的数据,以便于 ...

  10. vba显示正在加载_利用VBA代码显示工作簿的路径及完全路径的方案及对工作薄的操作...

    分享成果,随喜真能量.大家好,今日内容仍是和大家分享VBA编程中常用的简单"积木"过程代码,这些内容多是取至我的"VBA代码解决方案"教程中内容.NO.139- ...

最新文章

  1. 《剑指offer》c++版本 17.打印从1到最大的N位数
  2. HTML数字自动排序,jquery – HTML中的数字嵌套排序列表
  3. stm32 窗口看门狗学习(二)
  4. BASIC-1_蓝桥杯_闰年判断
  5. 【图的DFS】图的DFS非递归算法
  6. java 回调函数很好懂
  7. android sdk方法隐藏_每个Android开发都必须知道的利器
  8. python计算速度_python中如何提高计算速度?
  9. RNN梯度爆炸原因和LSTM解决梯度消失解释
  10. 【Stimulsoft Reports Server教程】创建报表快照
  11. c语言五个整数排列,刚学c语言,老师让用if编一个五个数字从大到小的排序,有那个大神能帮我,谢谢啦...
  12. Redis 那么快之底层 ziplist 的奥秘!
  13. 像招程序员那样招司机,结果……
  14. 操作系统--系统引导程序
  15. 阿里内部刊物首次公开——《智慧之巅:DT时代的商业革命》出版
  16. 在本地运行scala程序报错 requirement failed: Can only call getServletHandlers on a running MetricsSystem
  17. Linux 命令【无标题命令】
  18. rpm包安装简单方法
  19. 管理之黄金圈理论:让自己更值钱的5个能力
  20. C++控制不同进制输出(二进制,八进制,十进制,十六进制)各种进制之间的转换

热门文章

  1. java大作业私人管家系统_微软蓝天云平台:中小企业的私人管家
  2. idea TODO功能使用
  3. ValueError: `generator` yielded an element of shape (2,) where an element of shape (?, ?) was expect
  4. 直接将ADB授权写入到手机的方法(手机需要有root权限)
  5. 通过关键词获取微博内容
  6. poi操作PPT读取模板流,生成新PPT文件
  7. mysql不支持rank()_Mysql 实现 rank 和 != 问题
  8. 【李小丫的笔记】DataWhale金融风控预测Task1
  9. sMRI影像数据3维CNN卷积
  10. 《高质量C++/C编程指南》陷阱 【转】