问题描述
我遇到了奇怪的问题。
我的excel文件具有: 6张 4张纸上的11个按钮 一张纸上的3个按钮 和第一张纸上的0
我的工作簿当前受到保护,
Private Sub Workbook_open()
wsArray = Array("Sheet1","Sheet2","Sheet3","Sheet4","Sheet5","Sheet7")
For Each wsArray In ThisWorkbook.Worksheets
wsArray.Protect UserInterfaceOnly:=True
Next wsArray
End Sub
我在第一页上添加了一个activex按钮,该按钮用于在单独的工作簿上搜索值,如果找到了该值,则返回到第一工作簿并在该值周围添加边框,从而找到了一个匹配项
Private Sub CommandButton1_Click()
Dim rr23WS As Worksheet,rrCell As Range
Dim rrCheck As Range
Dim r As Long
Dim rrMatch
Set rr23WS = Workbooks("Test.xlsx").Worksheets("October")
Set rrCheck = rr23WS.Columns(1)
For r = 1 To 4
For Each rrCell In Worksheets("RACK " & r).Range("C6:N13").Cells
rrMatch = Application.Match(rrCell,rrCheck,0)
If Not IsError(rrMatch) Then
rrCell.Borders.Color = RGB(0,192)
rrCell.Borders.Weight = xlThick
End If
Next rrCell
Next r
End Sub
仅当我取消保护要搜索(“ C6:N13”)范围的每个工作表时,该代码才起作用。
如果我关闭工作簿并再次打开它(在自动保护模式下),它将不起作用。它给我“无法设置Borders类的Weight属性”的错误。但是,在工作簿受保护的情况下,我在其他工作表上拥有的所有其他宏按钮都可以正常工作。
我尝试将Borders.Color = xlThin
设置在xlThick
之前,但这没有用,还尝试了xlHairline
,但没有成功。
尝试将Application.EnableEvents = False
设置为True,但这没有用。
我使用的是excel 2016,遇到了很多东西,说这是一个错误,并尝试了一些对某些人有用的解决方法,但对我自己没有帮助。
有人可以说明发生了什么吗?!
编辑:这行得通,但是为什么?!我什至没有在正确的图纸上选择范围。但是必须拥有Range("C6:N13").Select
,否则将不起作用。
我也可以将范围更改为仅1个随机像元,并且效果很好。必须阅读几种不同的边框样式,却不知道该更改哪种样式?
解决方法
您不仅在保护特定的纸张,还在保护所有的纸张。您将需要修改代码。
Private Sub Workbook_Open()
Dim wsArray,ws
wsArray = Array("Sheet1","Sheet2","Sheet3","Sheet4","Sheet5","Sheet7")
For Each ws In wsArray
Sheets(ws).Protect UserInterfaceOnly:=True
Next ws
End Sub