无法设置 Borders 类的 Weight 属性

Posted

技术标签:

【中文标题】无法设置 Borders 类的 Weight 属性【英文标题】:Unable to set Weight property of the Borders class 【发布时间】:2021-02-22 00:07:44 【问题描述】:

我遇到了奇怪的问题。

我的 excel 文件有: 6张 4 张纸上有 11 个按钮 其中 1 张有 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, 0, 192)
                rrCell.Borders.Weight = xlThick
                
            End If
    
    Next rrCell
    
Next r

End Sub

该代码仅在我取消保护我正在搜索 ("C6:N13") 范围的每个工作表时才有效。

如果我关闭工作簿并再次打开它(在它的自动保护模式下),它就不起作用。它给了我“无法设置边框类的权重属性”的错误。但是,当工作簿受到保护时,我在其他工作表上的所有其他宏按钮都可以正常工作。

我尝试在xlThick 之前设置Borders.Color = xlThin,但这没有用,也尝试了xlHairline,但没有这样做。 尝试将 Application.EnableEvents = False 设置为 True,但没有成功。

我正在使用 excel 2016 并且遇到很多事情说这是一个错误,并尝试了其他对某些人有用但对我自己有用的解决方法。

有人能解释一下到底发生了什么吗?!

编辑:这行得通,但是为什么?!我什至没有在正确的工作表上选择范围。但是Range("C6:N13").Select 是必须的,否则它不起作用。

我也可以将范围更改为仅 1 个随机单元格,它工作得很好。一定是在阅读几种不同的边框样式,却不知道从哪一种改变?

所以选择一个随机范围,将其更改为确定的样式来阅读?

【问题讨论】:

那么rr23WS 是在ThisWorkbook 还是在另一个? 当您将枚举替换为它的值时它是否有效? @BigBen rr23WS 是单独的工作簿。 @braX so rrCell.Borders.Weight = 4 除非语法不正确,否则似乎不会 我无法在 Excel 365 中重现此内容。 【参考方案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

【讨论】:

这似乎也不起作用。打开时立即给我一个“运行时错误'9':下标超出范围”

以上是关于无法设置 Borders 类的 Weight 属性的主要内容,如果未能解决你的问题,请参考以下文章

第二章 Background & Borders 之 Multiple borders

为啥ie中我设置的font-weight属性无效

无界鼠标的使用问题 mouse without borders

如何从代码中动态设置 layout_weight 属性?

设置 PivotItem.Visible = false 时无法设置 PivotItem 类的 Visible 属性

Python面向对象之封装