Excel (VBA) : Disabling cell formatting except bold font

标签 excel vba formatting cell

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

明显地,.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/

相关文章:

vb.net - 如何正确读取单个 Excel 单元格

excel - VBA基于列表创建工作表

excel - 是否可以在 Excel VBA 中返回复选框的名称?

java - 更改java控制台输出的颜色

vba - 想要在 Excel 中将两个 VBA 宏循环在一起,但我想我只是错过了一些非常小的东西

vba - 从函数返回数组时类型不匹配

vba - excel vba 打开工作簿

arrays - 转换多列表并将输出转到两列?

css - 为什么子div的边距会影响父div的边距?

python - 在 Python 的 format() 函数中使用变量