【发布时间】: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 中重现此内容。
标签: excel vba excel-2016