大侠,我想求个VBA。打开或关闭Excel07的文档时,自动对文档的sheet加密保护工作表

作者&投稿:丹阳 (若有异议请与网页底部的电邮联系)
用下面代码,可在打开时,自动撤消保护,关闭时自动保护工作表。
代码要放在thisworkbook模块中
Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox "关闭后会保护工作表"
Sheets("sheet1").Protect Password:=123 ' 保护工作表sheet1并设置密码
End Sub

Private Sub Workbook_Open()
MsgBox "打开工作表,自动取消保护"
Sheets("sheet1").Unprotect Password:=123 '撤消sheet1工作表保护,密码是123
End Sub

你只要退出时自动保护就行了,没必要打开自动解保的,那样就没什么意义了。
双击thisworkbook
Private Sub Workbook_BeforeClose(Cancel As Boolean)
workbook.Protect Password:=111111
End Sub

excel07 关闭文档的时候自动保护工作表(sheet) ,求VBA~

把这段代码复制到你的EXCEL代码区域,如果需要保护工作表2,3,只需把代码中1改为2,3即可
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets(1).Protect Password:=你的密码
End Sub

用下面代码,可在打开时,自动撤消保护,关闭时自动保护工作表。
代码要放在thisworkbook模块中
Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox "关闭后会保护工作表"
Sheets("sheet1").Protect Password:=123 ' 保护工作表sheet1并设置密码
End Sub

Private Sub Workbook_Open()
MsgBox "打开工作表,自动取消保护"
Sheets("sheet1").Unprotect Password:=123 '撤消sheet1工作表保护,密码是123
End Sub

EXCEL VBA如何打开一个日期变量命名的工作簿,如11号就在VBA里打开一个...
答:=DAY(TODAY())这个可以取得日期。你在代码里把上面内容给一个变量,然后把变量写进表达式就行了。测试了下,这一句就搞定了:sheets(cstr(day(now())).Select

excel 2013在vba中隐藏工作表, 设置密码后在vba中打开不用输入密码?
答:设置的密码只是 查看 VBA代码时的密码,与隐藏的工作表无关,取消隐藏就可以看到。如要想不被直接查看到,比如是sheet1 要隐藏,除非进入 vba中修改,否则不能被看到。可以 worksheet的代码区,加入如下:Private Sub Worksheet_Activate()Sheet1.Visible = xlSheetVeryHidden End Sub 只要sheet1被激活就...

excel vba 编程,怎么讲窗口右上角的那个【X】隐藏掉。。。或者把它的...
答:在你的用户窗口的代码中添加一个这个过程可以屏蔽VBA创建的用户窗口上标题栏的关闭按钮.但是要注意你的代码中要有能控制关闭该窗口的代码要不你没办法关闭这个用户窗口 Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)Cancel = 1 End Sub ...

如何通过Access VBA切换到一个已经打开的Excel窗口?
答:试试看下面的语句:AppActivate "工作簿1 - Excel"

那位大侠帮我做个VBA代码啊,要求:A1跳B1、C1显示时间;B1跳A2、C2显示...
答:= TimeValue(Now)Else Target.Offset(1, -1).Select ctrl = False Target.Offset(1, 1) = TimeValue(Now)End If Application.OnTime Now + TimeValue("0:00:01"), "changectrl"End Sub 然后保存excel文件,退出,然后重新打开,就OK了。就有你要的功能了,当然打开的时候一定要允许启用宏。

Excel VBA 单元格满足一定条件时,停止运行并计数!
答:明白你的意思,但是你这样的设计可能会出问题。——可能 因为你实际上是利用了excel的自动重算功能,用vba触发自动重算。excel自动重算功能可能跟不上vba的节奏。Sub MyCal()Dim i As Long, p As LongDo While i < 10 Application.Calculate p = p + 1 If [A3] = True Then i =...

我现在有一个excel 2007 VBA的程序,但是这个程序被锁住了。。。,有...
答:MsgBox "请先对VBA编码设置一个保护密码...", 32, "提示"Exit Sub End If Dim St As String * 2 Dim s20 As String * 1 '取得一个0D0A十六进制字串 Get #1, CMGs - 2, St '取得一个20十六制字串 Get #1, DPBo + 16, s20 '替换加密部份机码 For i = CMGs To DPBo Step 2 ...

哪们大侠看看我这个VBA运行速度超慢的原因在哪,该怎么优化?
答:代码优化建议:变量命名:变量名应该具有描述性,让人能够理解变量的含义。例如,使用更具体的变量名来代替 i、j、num 等。减少重复计算:在代码中多次使用相同的计算,可以将计算结果存储在一个变量中,以减少计算次数。使用 With 语句:使用 With 语句可以减少代码中的嵌套,提高代码可读性。避免使用 ...

用VBA删除某一个sheet?
答:用VBA删除某一个sheet。方法步骤如下:1、打开需要操作的EXCEL表格,在开发工具选项卡中点击“Visual Basic”。2、在左侧工程视图点击鼠标右键选择插入模块。3、在右侧模块中输入代码:Sub DeleteSheet()Sheets("sheet").Delete End Sub 【其中“sheet”即为需要删除的工作簿名称】4、返回EXCEL表格,点击...

Excel加了个VBA程序,第一次运行成功,再打开不工作了
答:如果经常用这个自定义公式的话,建议你这样做:新建一个工作簿,alt+F11,插入模块,复制代码;返回Excel,另存为xla(Excel加载宏)格式;重新打开Excel,文件,选项,加载项,转到,浏览找到xla文件保存位置,确定 这样,后续只要打开Excel,就可以用这个公式了;注意Xla文件不能更改存放位置,否则需要重复...