无法设置Borders类的Weight属性

问题描述

我遇到了奇怪的问题。

我的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,否则将不起作用。

enter image description here

我也可以将范围更改为仅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