Excel 如何通过激活子工作表_更改(ByVal target As Range)修复非目标单元格

Excel 如何通过激活子工作表_更改(ByVal target As Range)修复非目标单元格,excel,vba,Excel,Vba,我的电子表格有目标单元格和我希望能够输入手动数据的单元格,而无需将工作表更改为激活或运行。我如何允许在不运行私有子系统的情况下填充这些打开的用户单元?? 更多信息示例代码。在相同的格式中有许多类似的代码段 Private sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = True If Intersect(Target, Range("$B$8:$k$9")) Is Nothing The

我的电子表格有目标单元格和我希望能够输入手动数据的单元格,而无需将工作表更改为激活或运行。我如何允许在不运行私有子系统的情况下填充这些打开的用户单元?? 更多信息示例代码。在相同的格式中有许多类似的代码段

Private sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = True
    If Intersect(Target, Range("$B$8:$k$9")) Is Nothing Then
        GoTo NEXT10
        'Application.EnableEvents = False
    End If
    Application.EnableEvents = True
    MsgBox Target.Address
    '-------------------------------------------------------------------    
    'Application.EnableEvents = True
    Application.EnableEvents = False
    If Target.Address = "$B$8" Then
        If Target.Value >= 0 Then
            Range("B9") = Range("B8").Value * 42
        End If
    ElseIf Target.Address = "$B$9" Then
        Range("B8") = Range("B9").Value / 42
    End If
    Application.EnableEvents = True
End Sub
问题是,如果我在工作表的任何空单元格中输入、删除值或文本,它会激活
工作表\u更改(ByVal Target…)
。我使用
if Intersect(Target,Range($B8$:$k$8)如果没有更改,则没有任何内容可以绕过目标。此格式用于其他重要的目标范围。但我不明白为什么更改任何单元格时程序会运行?是否可以避免此情况,以便执行各种手动输入?例如文本注释、标签等。

Next10是另一段代码的开始,但目标地址不同。如果指示的目标加法未相交,则检查下一个交点。

将逻辑构建到事件宏中。工作表中有什么更改阻止用户更改任何单元格?
目标
是单元格您已更改。请确保目标单元格的范围正确。
工作表\u Change
在发生任何更改时始终运行(假设未禁用事件)-你必须把逻辑放在sub中决定是否和/或如何反应。我将尝试提供更多关于代码和单元格的信息。让我来整理信息。谢谢