Excel:VBA可以保留其他用户清除内容事件的公式

问题

我在一个Excel文件中pipe理一个15人的加权决策matrix。 该文件中有10列包含公式。 公式根据用户在其他单元格中select的选项计算总加权分数。

有时用户需要删除一个条目。 我的团队常见的删除方法包括select整行,并执行以下操作之一:

  • 按下删除键。
  • 右键单击并select“清除内容”。
  • 从主页选项卡上的编辑组中select“清除内容”。

所有这些方法也清除了计算加权分数的公式。

上面描述的方法对于我的大部分团队来说都是直观的,所以我想find一种让人们在不清除公式的情况下使用这些方法的方法。

梦想

当用户使用上述任何方法清除单元格时,允许用户清除除公式以外的所有内容。

我试过的东西

  • locking公式单元格。 这样可以防止用户清除公式,但是由于该行中的公式单元格被locking,所以在select整行时无法清除其他单元格中的内容。

  • 下面的macros。 macros将清除常量和公式,但是当“清除内容”事件发生时,我无法自动触发它。 期待我的团队所有成员运行这个macros,而不是用他们常规的方法来清理内容,这是我担心的傻事。

    Sub ClearOnlyValues() Dim Cel As Range Application.EnableEvents = False Application.Calculation = xlCalculationManual For Each Cel In Selection If InStr(Cel.Formula, "=") = 0 And Cel.Value <> "" Then Cel.ClearContents End If Next Cel Application.EnableEvents = True Application.Calculation = xlCalculationAutomatic End Sub 
  • 谷歌。 我可以find的唯一的macros必须手动运行,每次你想清除内容和无数的postdemo'ing去特殊的方法清除常量。 见上面的傻瓜的差事。 如果他们不能直观地清除细胞,我们就会陷入混乱。 猫和狗住在一起。 这将是无政府状态。

  • 先进的Excel用户比我更聪明。 他们都难倒了。

如果你还在我身边,谢谢你花时间。