使VBA应用于重命名的选项卡&;工作簿中的所有选项卡
我对VBA不太了解,但我在一个网站上找到了下面的代码,并在一个工作簿中使用它使VBA应用于重命名的选项卡&;工作簿中的所有选项卡,vba,excel,Vba,Excel,我对VBA不太了解,但我在一个网站上找到了下面的代码,并在一个工作簿中使用它 Private Sub Workbook_Open() With Worksheets("WFD") .EnableOutlining = True .Protect Password:="XXXX", _ Contents:=True, UserInterfaceOnly:=True End With End Sub 我应该如何修改它,以便如果图纸名称从“WFD”更改为其他名称,代码仍然有效?此外,我希望它适用于工
Private Sub Workbook_Open()
With Worksheets("WFD")
.EnableOutlining = True
.Protect Password:="XXXX", _
Contents:=True, UserInterfaceOnly:=True
End With
End Sub
我应该如何修改它,以便如果图纸名称从“WFD”更改为其他名称,代码仍然有效?此外,我希望它适用于工作簿中的所有工作表
非常感谢您可以根据工作表的编号编写
工作表(1)
或工作表(5)
。但是,如果您开始添加和删除工作表,它将无法工作(例如,它将在其他工作表上工作)。要查看与工作表关联的编号,请运行此命令并检查即时窗口:
Option Explicit
Public Sub TestMe()
Dim ws As Worksheet
Dim cnt As Long
For cnt = 1 To ThisWorkbook.Worksheets.Count
Debug.Print cnt; "-> "; Worksheets(cnt).name
Next cnt
End Sub
但是,如果您只有一个工作表,
工作表(1)
将始终有效。如果您希望每个工作表都有此代码,请使用以下代码:
Private Sub Workbook_Open()
Dim ws As Worksheet
For Each ws In Worksheets
With ws
.EnableOutlining = True
.Protect Password:="XXXX", _
Contents:=True, UserInterfaceOnly:=True
End With
Next
End Sub
您应该使用图纸对象代码名。 这可以在VB编辑器中的VB项目中的图纸对象旁边找到 默认情况下,它们是Sheet1、Sheet2等。您可以通过单击并键入新名称等轻松更改它们 当然,如果您愿意,您可以将它们保留为默认代码名。。。 这与工作表名称不同,工作表名称由用户在Excel界面的“工作表”选项卡上更改
Private Sub Workbook_Open()
With WFD 'where WFD is the CODENAME of the Sheet Object!
.EnableOutlining = True
.Protect Password:="XXXX", _
Contents:=True, UserInterfaceOnly:=True
End With
End Sub
这是保护代码不受用户更改影响的最安全的方法