Excel 无法设置characters类的text属性
此代码保护除一张图纸外的所有图纸。如果工作表受到保护,则此选项有效,但如果工作表未受到保护,则会显示错误消息 ws是打开按钮的工作表 wsheet用于保护除一张之外的所有纸张。基本上,当用户单击工作表ws按钮时,我希望所有工作表(包括按钮所在的工作表)都受到保护,但名为“加班”的工作表除外。当他们再次单击时,将取消对所有工作表的保护Excel 无法设置characters类的text属性,excel,vba,Excel,Vba,此代码保护除一张图纸外的所有图纸。如果工作表受到保护,则此选项有效,但如果工作表未受到保护,则会显示错误消息 ws是打开按钮的工作表 wsheet用于保护除一张之外的所有纸张。基本上,当用户单击工作表ws按钮时,我希望所有工作表(包括按钮所在的工作表)都受到保护,但名为“加班”的工作表除外。当他们再次单击时,将取消对所有工作表的保护 Dim wSheet As Worksheet Dim wb As Workbook Dim ws As Worksheet Set wb
Dim wSheet As Worksheet
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook
Set ws = wb.Sheets(1)
Application.ScreenUpdating = False
For Each wSheet In Worksheets
If wSheet.Name = "Overtime" Then
wSheet.Unprotect Password:="12345"
ws.Shapes("Rectangle_LOCK").TextFrame.Characters.Text = "Vérouiller" 'THIS IS WHERE IT GIVES ME THE ERROR
ElseIf wSheet.ProtectContents = True Then
wSheet.Unprotect Password:="12345"
ws.Shapes("Rectangle_LOCK").TextFrame.Characters.Text = "Vérouiller"
Else
wSheet.Unprotect Password:="12345"
ws.Shapes("Rectangle_LOCK").TextFrame.Characters.Text = "Déverouiller"
wSheet.Protect Password:="12345"
End If
Next wSheet
Application.ScreenUpdating = True
请尝试以下代码
Dim wSheet As Worksheet
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook
Set ws = wb.Sheets(1)
Application.ScreenUpdating = False
For Each wSheet In wb.Worksheets
If wSheet.Name <> "Overtime" Then
If wSheet.ProtectContents Then
wSheet.Unprotect Password:="12345"
If wSheet.Name = ws.Name Then
wSheet.Shapes("Rectangle_LOCK").TextFrame.Characters.Text = "Vérouiller"
End If
Else
If wSheet.Name = ws.Name Then
wSheet.Shapes("Rectangle_LOCK").TextFrame.Characters.Text = "Déverouiller"
End If
wSheet.Protect Password:="12345"
End If
End If
Next wSheet
Application.ScreenUpdating = True
将工作表设置为工作表
将wb设置为工作簿
将ws设置为工作表
设置wb=ThisWorkbook
设置ws=wb.Sheets(1)
Application.ScreenUpdating=False
对于wb.工作表中的每个wSheet
如果wSheet.Name为“加班”,则
如果是wSheet.ProtectContents,则
wSheet.Unprotect密码:=“12345”
如果wSheet.Name=ws.Name,则
wSheet.Shapes(“矩形锁”).TextFrame.Characters.Text=“Vérouiller”
如果结束
其他的
如果wSheet.Name=ws.Name,则
wSheet.Shapes(“矩形锁”).TextFrame.Characters.Text=“Déverouiller”
如果结束
wSheet.Protect密码:=“12345”
如果结束
如果结束
下一页
Application.ScreenUpdating=True
它在那一行给你一个错误,因为它上面的那一行是在保护工作表。该工作表需要取消保护。尝试先添加一行以取消保护…仍然会出现错误看起来wSheet
和ws
在循环中的特定迭代中没有引用同一工作表。我建议你编辑你的帖子,用文字准确描述你想做什么。添加更多细节