我想禁用更改单元格的格式,除了使字体加粗。有没有办法做到这一点?
明显地,.Protect AllowFormattingCells:=True
启用所有可能的格式更改。
我认为也许在功能区上制作自定义按钮可以为此服务(即取消保护工作表,使内容变粗并再次保护),但我想知道是否有一些更方便的方法来解决这个问题。
我在 http://www.excelforum.com/excel-programming-vba-macros/676299-use-vba-to-lock-all-cell-formatting-except-background-color.html 遇到过类似问题- 但它也仍未解决。
最佳答案
不是一个完美的解决方案,而是一个可能的解决方法。在 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
限制是它仅适用于键盘快捷键,而不适用于功能区按钮。我想您可以创建一个自定义按钮并将其“伪装”为粗体按钮,但这仍然是一个不完美的解决方法。
关于Excel (VBA) : Disabling cell formatting except bold font,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14684870/