Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 工作表更改事件,如果单元格内容已清除,则清除其旁边的单元格_Excel_Vba - Fatal编程技术网

Excel 工作表更改事件,如果单元格内容已清除,则清除其旁边的单元格

Excel 工作表更改事件,如果单元格内容已清除,则清除其旁边的单元格,excel,vba,Excel,Vba,守则的第一部分起作用;当用户将单元格更改为ACC时,它会输入正确的值。但是,如果用户删除它,那么我希望注释和它旁边单元格的内容也被清除。现在,当我删除它时,它不会改变任何东西。我尝试了Target.Value=”“,但它也不起作用 Sub worksheet_change(ByVal Target As Range) Dim WatchRange As Range Dim IntersectRange As Range Dim lastrow As Long

守则的第一部分起作用;当用户将单元格更改为ACC时,它会输入正确的值。但是,如果用户删除它,那么我希望注释和它旁边单元格的内容也被清除。现在,当我删除它时,它不会改变任何东西。我尝试了
Target.Value=”“
,但它也不起作用

Sub worksheet_change(ByVal Target As Range)

    Dim WatchRange As Range
    Dim IntersectRange As Range
    Dim lastrow As Long

    'If the cell in row J changes either ACC
        lastrow = Range("A" & Rows.Count).End(xlUp).Row

        Set WatchRange = Range("J9:J" & lastrow)
        Set IntersectRange = Intersect(Target, WatchRange)

        If Target.Count <> 1 Then Exit Sub 'makes sure only one cell is selected

            If Not (IntersectRange Is Nothing) And (Target = "ACC") Then 'if changed to ACC

                Application.EnableEvents = False

                    'Then input what the Poste Recherché was, date time and user
                    Cells(Target.Row, 11).ClearComments
                    Cells(Target.Row, 11).AddComment Application.UserName & vbNewLine & Now & _
                    vbNewLine & "Quart: " & Range("$F$3") & vbNewLine & "Date: " & Range("$F$4")
                    Cells(Target.Row, 11).Value = "ACCEPTÉ: " & Range("$F$2")

                Application.EnableEvents = True

            End If

            If Not IntersectRange Is Nothing And Target Is Empty Then

                Application.EnableEvents = False

                    Cells(Target.Row, 11).ClearComments
                    Cells(Target.Row, 11).ClearContents

                Application.EnableEvents = True

            End If    

End Sub
子工作表\u更改(ByVal目标作为范围)
将手表量程变暗为量程
将范围变暗为范围
最后一排一样长
'如果第J行中的单元格发生变化
lastrow=范围(“A”和Rows.Count).End(xlUp).Row
设置WatchRange=Range(“J9:J”和lastrow)
设置IntersectRange=Intersect(目标,监视范围)
如果目标为.Count 1,则退出Sub'确保只选择了一个单元格
如果不是(IntersectRange为Nothing)和(Target=“ACC”),则“如果更改为ACC
Application.EnableEvents=False
'然后输入Poste Recherché是什么,日期时间和用户
单元格(Target.Row,11)。ClearComments
单元格(Target.Row,11).AddComment Application.UserName&vbNewLine&Now&_
vbNewLine和“Quart:”&Range($F$3”)&vbNewLine和“Date:”&Range($F$4))
单元格(Target.Row,11).Value=“接受范围($F$2”)
Application.EnableEvents=True
如果结束
如果不相交范围为空且目标为空,则
Application.EnableEvents=False
单元格(Target.Row,11)。ClearComments
单元格(Target.Row,11).ClearContents
Application.EnableEvents=True
如果结束
端接头
更换:

Target Is Empty
与:


或者
IsEmpty(Target.Value)
。由于您正在使用工作表\u Change,并且我可以看到一些错误,我建议您仔细检查
Target = ""