Excel:VBA保留具有来自其他用户的明确内容事件的公式

时间:2016-03-29 22:29:24

标签: excel vba excel-vba

问题

我在Excel文件中为15人的团队管理加权决策矩阵。文件中有10列包含公式。公式根据用户在其他单元格中选择的选项计算总加权分数。

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

  • 按删除键。
  • 右键单击并选择"清除内容"。
  • 选择"清除内容"来自“主页”选项卡上的“编辑”组。

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

上述方法对我的大多数团队来说都是直观的,所以我想找到一种让人们在不清除公式的情况下使用这些方法的方法。

梦想

允许用户在使用上述任何方法清除单元格时清除所有但公式

我尝试的事情

  • 仅锁定公式单元格。这可以防止用户清除公式,但是当他们选择整行时,他们无法清除其他单元格中的内容,因为该行中的公式单元格已被锁定。

  • 下面的宏。宏将清除常量并保留公式,但是当“清除内容”时,我无法自动触发公式。事件发生了。期待我的团队的所有成员运行这个宏而不是使用他们的常规方法来清除内容是一件愚蠢的事情,我担心。

    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
    
  • 谷歌。我可以找到的唯一的宏都必须在每次要清除内容时手动运行,并且无数的帖子演示了Go To Special方法的清除常量。见上面的傻瓜差事。如果他们不能直观地清除细胞,我们就会陷入混乱。猫和狗住在一起。它会变得无政府状态。

  • 比我聪明的高级Excel用户。他们都很难过。

如果您还在我身边,感谢您抽出宝贵时间。

1 个答案:

答案 0 :(得分:1)

在Excel VBA代码中尝试以下常量:

Sheet1.Range("B3:E20").SpecialCells(xlCellTypeConstants).ClearContents

无需保护电池。这将清除单元格内容,而不会删除公式。

相关问题