ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 工作簿加密和打开固定密码的工作簿

工作簿加密和打开固定密码的工作簿

作者:绿色风 分类: 时间:2022-08-18 浏览:94
楼主
little-key

  1. '设置工作簿打开权限
  2. Sub shezhigongzuobodakaquanxian()
  3.     On Error Resume Next
  4.     With ActiveWorkbook
  5.         'If Not .Saved Then
  6.         PSW = "xiao"
  7.         If Len(.path) = 0 Then
  8.             ans = MsgBox("此功能需要先保存后方可生效," & Chr(13) & "但当前工作簿尚未做保存," & vbCrLf & "您是否需要继续操作?", 64 + 4, "温馨提示:")
  9.             If ans = 6 Then
  10.                 .Password = PSW  '打开权限密码以及只读密码  Password:=1, WriteresPassword:=1
  11.                 aa = Application.Dialogs(xlDialogSaveAs).Show(.FullName, 12)  '52为保存默认值为2007格式的可启用宏格式
  12.                 GoTo jingshi
  13.                 Exit Sub
  14.             Else
  15.                 Exit Sub
  16.                 GoTo jingshi
  17.             End If
  18.         Else
  19.             If Not .Saved Then
  20.                 .Password = PSW
  21.                 .Save
  22.                 GoTo jingshi
  23.                 Exit Sub
  24.             Else
  25.                 MsgBox "当前工作簿未作任何改变!", 64, " 温馨提示:"
  26.                 Exit Sub
  27.             End If
  28.         End If
  29.     End With
  30. jingshi:
  31.     MsgBox "操作完毕!", 64, " 温馨提示:"
  32. End Sub


  33. '打开有打开权限密码的工作簿
  34. Sub liangcaiOpenPSW()
  35. 'On Error Resume Next
  36.     On Error GoTo ErrorHandler
  37.     PWS = "xiao"
  38.     Filenames = Application.GetOpenFilename("所有文件 (*.*),*.*,Excel 文件 (*.xl*),*.xl*,加载宏文件 (*.xla),*.xla,文本文件 (*.txt),*.txt", 2, "选择文件", , False)
  39.     If Filenames = False Then
  40.         Exit Sub
  41.     Else
  42.         pd = Split(Filenames, ".")(1)
  43.         If pd Like "xl*" Then
  44.             Workbooks.Open FileName:=Filenames, Password:=PWS  '如果有读写密码,则增加", WriteresPassword:=1"
  45.             Exit Sub
  46.         Else
  47.             MsgBox "此文件不是Excel 文件,请核实!", 48 + vbOKOnly, "警示!"
  48.             Exit Sub
  49.         End If
  50.     End If
  51. ErrorHandler:
  52.     aa = MsgBox("密码错误,是否需要手动输入?", 48 + vbYesNo, "警示!")
  53.     If aa = vbYes Then
  54.         Workbooks.Open FileName:=Filenames
  55.     Else
  56.         Exit Sub
  57.     End If
  58. End Sub


其中:
aa = Application.Dialogs(xlDialogSaveAs).Show(.FullName, 12)
中的12所在的位置代表另存为的格式,其中12表示另存为2007的普通格式。
2楼
ljx63426
12表示另存为2007的普通格式,如果另存为2003的普通格式,12改为什么呢?
3楼
little-key
2007为51;
2003为56;
4楼
little-key
可以使用:
Sub 另存为版本测试()
    MsgBox Application.DefaultSaveFormat
End Sub
5楼
qinhuan66
好好学习天天向上

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap