Vba 如何在不考虑本地用户设置的情况下运行宏
我有一个excel表格,由多个用户通过网络使用,这本书有一个宏,应该在书一打开就运行。我的问题是,一些用户禁用了宏,因此当他们打开书本时,宏不会运行。我知道禁用宏是一个很好的安全功能,但我真的想启用本书的所有宏,而不管用户的设置如何Vba 如何在不考虑本地用户设置的情况下运行宏,vba,excel,Vba,Excel,我有一个excel表格,由多个用户通过网络使用,这本书有一个宏,应该在书一打开就运行。我的问题是,一些用户禁用了宏,因此当他们打开书本时,宏不会运行。我知道禁用宏是一个很好的安全功能,但我真的想启用本书的所有宏,而不管用户的设置如何 无论用户设置如何,是否有办法启用宏 在我工作的公司里,我遇到过这样的情况。我们有一个系统,它使用excel表格在一系列中获取一个数字,作为设计工作的项目编号。用户们一直在互相抢夺,所以我写了一个宏来帮助减少问题,但是有些用户没有启用宏,所以导致了问题 您不能启用/禁
无论用户设置如何,是否有办法启用宏 在我工作的公司里,我遇到过这样的情况。我们有一个系统,它使用excel表格在一系列中获取一个数字,作为设计工作的项目编号。用户们一直在互相抢夺,所以我写了一个宏来帮助减少问题,但是有些用户没有启用宏,所以导致了问题 您不能启用/禁用不好的宏,但可以给用户一个轻推
真正隐藏
,当启用宏时,您可以取消隐藏
工作表,并隐藏解释工作表Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Step 1: Declare your variables
Dim ws As Worksheet
Dim result As Variant
'Step 2: Unhide the Starting Sheet
Sheets("START").Visible = xlSheetVisible
'Step 3: Start looping through all worksheets
For Each ws In ThisWorkbook.Worksheets
'Step 4: Check each worksheet name
If ws.Name <> "START" Then
'Step 5: Hide the sheet
ws.Visible = xlVeryHidden
End If
'Step 6: Loop to next worksheet
Next ws
'Step 7: Save the workbook
ActiveWorkbook.Save
End Sub
Private Sub Workbook_Open()
'Step 1: Declare your variables
Dim ws As Worksheet
'Step 2: Start looping through all worksheets
For Each ws In ThisWorkbook.Worksheets
'Step 3: Unhide All Worksheets
ws.Visible = xlSheetVisible
'Step 4: Loop to next worksheet
Next ws
'Step 5: Hide the Start Sheet
Sheets("START").Visible = xlVeryHidden
End Sub
Private子工作簿\u关闭前(取消为布尔值)
'步骤1:声明变量
将ws设置为工作表
作为变量的模糊结果
'步骤2:取消隐藏起始页
图纸(“开始”)。可见=xlSheetVisible
'步骤3:开始循环浏览所有工作表
对于此工作簿中的每个ws。工作表
'步骤4:检查每个工作表名称
如果ws.Name为“START”,那么
'步骤5:隐藏工作表
ws.Visible=xlVeryHidden
如果结束
'步骤6:循环到下一个工作表
下一个ws
'步骤7:保存工作簿
活动工作簿。保存
端接头
私有子工作簿_Open()
'步骤1:声明变量
将ws设置为工作表
'步骤2:开始在所有工作表中循环
对于此工作簿中的每个ws。工作表
'步骤3:取消隐藏所有工作表
ws.Visible=xlSheetVisible
'步骤4:循环到下一个工作表
下一个ws
'步骤5:隐藏起始页
图纸(“开始”)。可见=xlVeryHidden
端接头
在我工作的公司里,我遇到过这样的情况。我们有一个系统,它使用excel表格在一系列中获取一个数字,作为设计工作的项目编号。用户们一直在互相抢夺,所以我写了一个宏来帮助减少问题,但是有些用户没有启用宏,所以导致了问题
您不能启用/禁用不好的宏,但可以给用户一个轻推
真正隐藏
,当启用宏时,您可以取消隐藏
工作表,并隐藏解释工作表Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Step 1: Declare your variables
Dim ws As Worksheet
Dim result As Variant
'Step 2: Unhide the Starting Sheet
Sheets("START").Visible = xlSheetVisible
'Step 3: Start looping through all worksheets
For Each ws In ThisWorkbook.Worksheets
'Step 4: Check each worksheet name
If ws.Name <> "START" Then
'Step 5: Hide the sheet
ws.Visible = xlVeryHidden
End If
'Step 6: Loop to next worksheet
Next ws
'Step 7: Save the workbook
ActiveWorkbook.Save
End Sub
Private Sub Workbook_Open()
'Step 1: Declare your variables
Dim ws As Worksheet
'Step 2: Start looping through all worksheets
For Each ws In ThisWorkbook.Worksheets
'Step 3: Unhide All Worksheets
ws.Visible = xlSheetVisible
'Step 4: Loop to next worksheet
Next ws
'Step 5: Hide the Start Sheet
Sheets("START").Visible = xlVeryHidden
End Sub
Private子工作簿\u关闭前(取消为布尔值)
'步骤1:声明变量
将ws设置为工作表
作为变量的模糊结果
'步骤2:取消隐藏起始页
图纸(“开始”)。可见=xlSheetVisible
'步骤3:开始循环浏览所有工作表
对于此工作簿中的每个ws。工作表
'步骤4:检查每个工作表名称
如果ws.Name为“START”,那么
'步骤5:隐藏工作表
ws.Visible=xlVeryHidden
如果结束
'步骤6:循环到下一个工作表
下一个ws
'步骤7:保存工作簿
活动工作簿。保存
端接头
私有子工作簿_Open()
'步骤1:声明变量
将ws设置为工作表
'步骤2:开始在所有工作表中循环
对于此工作簿中的每个ws。工作表
'步骤3:取消隐藏所有工作表
ws.Visible=xlSheetVisible
'步骤4:循环到下一个工作表
下一个ws
'步骤5:隐藏起始页
图纸(“开始”)。可见=xlVeryHidden
端接头
否。否则,安全设置将毫无意义。(但是,我相信,您可以让网络管理员更改所有用户的设置,以允许“信任”某些目录中的工作簿。)因此用户设置总是覆盖Excel工作簿中的设置?如果是的话,我想唯一的解决办法是每个用户都将这本书变成一个受信任的文档。想象一下,如果只需要让感染病毒的工作簿说“我值得信任-忽略用户不信任我的愿望”,那么传播病毒将是多么容易。因此,是的,用户设置将始终优先于工作簿所述内容。我发现,如果您告诉用户更改设置的方式和原因,那么让用户更改设置是非常容易的。:)并向他们解释不要随意打开任何人(特别是公司以外的人)的excel文件。否则,安全设置将毫无意义。(但是,我相信,您可以让网络管理员更改所有用户的设置,以允许“信任”某些目录中的工作簿。)因此用户设置总是覆盖Excel工作簿中的设置?如果是的话,我想唯一的解决办法是每个用户都将这本书变成一个受信任的文档。想象一下,如果只需要让感染病毒的工作簿说“我值得信任-忽略用户不信任我的愿望”,那么传播病毒将是多么容易。所以,是的,用户设置总是优先于工作簿上的内容。我发现让用户更改设置非常容易