2

我想禁用更改单元格的格式,除了使字体加粗。有没有办法做到这一点?

显然, .Protect AllowFormattingCells:=True启用所有可能的格式更改。

我认为也许在功能区上制作自定义按钮可以为此服务(即取消保护工作表,使内容变粗并再次保护),但我想知道是否有一些更方便的方法来解决这个问题。

我在http://www.excelforum.com/excel-programming-vba-macros/676299-use-vba-to-lock-all-cell-formatting-except-background-color.html遇到过类似的问题-但它也仍未解决。

4

1 回答 1

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

限制是它仅适用于键盘快捷键,而不适用于功能区按钮。我想您可以创建一个自定义按钮并将其“伪装”为粗体按钮,但这仍然是一个不完美的解决方法。

于 2013-02-12T15:19:16.073 回答