excel服务器 微信设置密码,如何用vba给excel工作簿批量设置添加打开密码? - EXCEL VBA - ExcelOffice【微信公众号:水星Excel】...
各位网友,大家好。
今天给大家介绍如何用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】...相关推荐
- VBA怎样关闭工作簿和退出Excel
要用VBA来关闭工作簿,用Workbook.Close 方法即可,而要退出Excel,则用Application.Quit 方法: 关闭活动工作簿,如果工作簿有更改,提示是否保存: Sub Close ...
- Excel 2010 VBA 入门 100 将xls格式工作簿批量转换为xlsx格式
目录 示例 代码 使用HasVBProject属性判断工作簿是否有代码 禁止打开工作簿时执行程序 示例 在某个文件夹下存有若干个以Excel 2003版本存储的工作簿(xls格式).将这些xls格式的 ...
- mac系统下word和excel设置文件打开密码,输入密码才能打开文件
mac系统下word和excel文件设置打开密码,实现输入密码才能打开文件 word加密 word版本 菜单栏选择[工具]->[保护文档],然后弹窗中输入密码,即可完成加密 excel加密 ex ...
- Excel如何将表格快速复制到另一工作簿中
如下图是某公司工资单,现在想要将此表格快速复制到其他工作簿中. 点击下图选项(Excel插件,百度即可了解详细的下载安装方法,本文这里不作详细叙述) 点击[工作表] 选择[复制表到多簿] 勾选[未打开 ...
- 微信公众号添加word文档附件教程_公众号添加Excel、PDF、PPT等附件教程
写公众号文章时,有时候希望在公众号文末分享一些文档如Word.Excel.PDF之类的文档,但苦于公众号并不支持直接上传文件.插入超链接是个方案,但并不是所有的公众号都有此功能.并且微信内并不允许直接 ...
- 微信公众号添加Word文档附件教程_公众号添加Excel、PDF、PPT、Zip等附件教程
编辑公众号文章时,有时候希望在公众号文末分享一些如Word.Excel.PDF.PPT.Zip之类的文档,但是由于公众号并不支持直接上传文件,所以导致很多编辑者不知道怎么给公众号文章添加附件.插入超链 ...
- EXCEL VBA创建sheet/工作簿
1.需要创建以地市命名的系列sheet,但不想手动创建改名. 代码实现如下: Sub SheetAdd()Dim i As Long'定义一个长整型变量Sheets.Add After:=Sheets ...
- Excel VBA 合并不同工作簿的工作表到一个工作簿的不同工作表
命令从下面第一个Sub开始: Sub 合并不同工作簿的工作表到一个工作簿的不同工作表() Excel.Application.ScreenUpdating = False Dim ARR() Dim ...
- extjs中store获取后台数据_Excel实战技巧64: 从工作簿中获取数据(不使用VBA)
学习Excel技术,关注微信公众号: excelperfect 这是在研读<Escape From Excel Hell>时学到的技术,从本工作簿中或者其他工作簿中获取所需要的数据,以便于 ...
- vba显示正在加载_利用VBA代码显示工作簿的路径及完全路径的方案及对工作薄的操作...
分享成果,随喜真能量.大家好,今日内容仍是和大家分享VBA编程中常用的简单"积木"过程代码,这些内容多是取至我的"VBA代码解决方案"教程中内容.NO.139- ...
最新文章
- 《剑指offer》c++版本 17.打印从1到最大的N位数
- HTML数字自动排序,jquery – HTML中的数字嵌套排序列表
- stm32 窗口看门狗学习(二)
- BASIC-1_蓝桥杯_闰年判断
- 【图的DFS】图的DFS非递归算法
- java 回调函数很好懂
- android sdk方法隐藏_每个Android开发都必须知道的利器
- python计算速度_python中如何提高计算速度?
- RNN梯度爆炸原因和LSTM解决梯度消失解释
- 【Stimulsoft Reports Server教程】创建报表快照
- c语言五个整数排列,刚学c语言,老师让用if编一个五个数字从大到小的排序,有那个大神能帮我,谢谢啦...
- Redis 那么快之底层 ziplist 的奥秘!
- 像招程序员那样招司机,结果……
- 操作系统--系统引导程序
- 阿里内部刊物首次公开——《智慧之巅:DT时代的商业革命》出版
- 在本地运行scala程序报错 requirement failed: Can only call getServletHandlers on a running MetricsSystem
- Linux 命令【无标题命令】
- rpm包安装简单方法
- 管理之黄金圈理论:让自己更值钱的5个能力
- C++控制不同进制输出(二进制,八进制,十进制,十六进制)各种进制之间的转换
热门文章
- java大作业私人管家系统_微软蓝天云平台:中小企业的私人管家
- idea TODO功能使用
- ValueError: `generator` yielded an element of shape (2,) where an element of shape (?, ?) was expect
- 直接将ADB授权写入到手机的方法(手机需要有root权限)
- 通过关键词获取微博内容
- poi操作PPT读取模板流,生成新PPT文件
- mysql不支持rank()_Mysql 实现 rank 和 != 问题
- 【李小丫的笔记】DataWhale金融风控预测Task1
- sMRI影像数据3维CNN卷积
- 《高质量C++/C编程指南》陷阱 【转】