Excel / VBA – Worksheet_Change只有手动更改字段时触发

嗨,并感谢您提前提供任何帮助。 我是VBA新手,我不是任何程序员。 我能够获得VBA代码工作的领域的变化,但不是手动完成领域变化时触发。

我确切的用例是我上传了一个Excel的macros本中的Salesforce和映射字段中的第三方应用程序。 该应用程序正在发送字段数据为Excel,它正在成功更改,但不会触发我的Worksheet_Change。 这里是完整的代码(基本上它显示了一个字段更改为“真”时的行)。

Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$K$19" And Target.Value = "True" Then Worksheets("Form").Activate Sheets("Form").Rows("20").Select If Selection.EntireRow.Hidden = True Then Selection.EntireRow.Hidden = False Else Selection.EntireRow.Hidden = True End If Sheets("Form").Rows("41").Select If Selection.EntireRow.Hidden = True Then Selection.EntireRow.Hidden = False Else Selection.EntireRow.Hidden = True End If Sheets("Form").Rows("81:89").Select If Selection.EntireRow.Hidden = True Then Selection.EntireRow.Hidden = False Else Selection.EntireRow.Hidden = True End If End If End Sub 

根据我的理解,实现这个function的方法是将相同的代码作为Worksheet_Calculate运行。 任何人都可以提供这方面的信息? 我不熟悉Worksheet_Calculates或一般的事件。

再次感谢。

考虑两个单元格,比如Z100Z101

  1. 如果手动刷新 Z100 则可以触发Change事件
  2. 如果Z100包含公式,则可以触发计算事件。
  3. 如果Z100包含通过外部馈源刷新的值则在Z101中input=Z100 ,然后也可以触发计算事件。

那是因为如果Z100被刷新,那么Z101会被自动计算,事件将被触发!