我想禁用更改单元格的格式,除了使字体加粗。有没有办法实现这个目标?
显然,
.Protect AllowFormattingCells:=True
启用所有可能的格式更改。
我认为也许在Ribbon上制作自定义按钮可以为此服务(即取消保护工作表,使内容变粗并再次保护),但我想知道是否有更方便的方法解决这个问题。
我在http://www.excelforum.com/excel-programming-vba-macros/676299-use-vba-to-lock-all-cell-formatting-except-background-color.html遇到了类似的问题 - 但它仍然没有解决。
答案 0 :(得分:0)
不是一个完美的解决方案,但可能是一种解决方法。在ThisWorkbook模块中,粘贴以下事件:
Private Sub Workbook_Activate()
Application.OnKey "^b", "MakeBold"
End Sub
Private Sub Workbook_Deactivate()
Application.OnKey "^b"
End Sub
然后,在常规模块中:
Sub MakeBold()
ActiveSheet.Unprotect
On Error Resume Next
Selection.Font.Bold = Not (Selection.Font.Bold)
On Error GoTo 0
ActiveSheet.Protect
End Sub
限制是它仅适用于键盘快捷键,而不适用于功能区按钮。我想你可以创建一个自定义按钮并将其“伪装”为Bold按钮,但它仍然是一个不完美的解决方法。