无法设置 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
无界鼠标的使用问题 mouse without borders