【发布时间】:2013-02-04 10:33:13
【问题描述】:
我想禁止更改单元格的格式,但字体加粗除外。有什么方法可以实现吗?
显然,
.Protect AllowFormattingCells:=True 启用所有可能的格式更改。
我认为也许在功能区上制作自定义按钮可以解决这个问题(即取消保护工作表,使内容变粗并再次保护),但我想知道是否有更方便的方法来解决这个问题。
我在 http://www.excelforum.com/excel-programming-vba-macros/676299-use-vba-to-lock-all-cell-formatting-except-background-color.html 遇到过类似的问题 - 但它仍然没有解决。
【问题讨论】:
-
录制一个宏 :) 然后如果你愿意,可以把它放在一个小函数中,并在必要时调用它..
-
您可以使用this one 之类的方法。除了比较旧的和新的
.Value之外,您需要比较新旧格式,如果更改不是粗体字体,则恢复为旧格式。 -
但请记住,如果您决定使用 Worksheet_Change 之类的事件,您必须考虑到您将要使用的参数 TARGET 是一个 Range,因此它可以跨越多个单元格。跨度>
-
@Jean 所以你不必为此取消保护工作表? :) 至于事件,OP可以通过
the Application.EnableEvents = False关闭它 -
我刚刚检查过,Worksheet_Change 事件不会在字体样式更改或任何其他格式更改时触发。
标签: excel vba formatting cell