Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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
Vba 清除后剩余的Excel单元格值_Vba_Excel - Fatal编程技术网

Vba 清除后剩余的Excel单元格值

Vba 清除后剩余的Excel单元格值,vba,excel,Vba,Excel,我使用VBA清除excel文件中的某些单元格,但当它清除这些单元格时,该值仍保留。当我单击单元格时,值消失,但我需要它在代码中清除单元格后执行此操作。编辑:根据要求,添加更多代码。即使按照建议将值设置为空,在单击单元格之前,单元格仍然不会为空 Private Sub Update(Target As Range, EventTarget As Range) On Error GoTo ErrorHandling Application.EnableEvents = False Dim CurrD

我使用VBA清除excel文件中的某些单元格,但当它清除这些单元格时,该值仍保留。当我单击单元格时,值消失,但我需要它在代码中清除单元格后执行此操作。编辑:根据要求,添加更多代码。即使按照建议将值设置为空,在单击单元格之前,单元格仍然不会为空

Private Sub Update(Target As Range, EventTarget As Range)
On Error GoTo ErrorHandling
Application.EnableEvents = False
Dim CurrDevice As String
Dim CurrPort As String
Dim ConcatInfo As String

CurrDevice = Range("B" & Target.Row).Value
CurrPort = Range("C" & Target.Row).Value
ConcatInfo = CurrDevice + CurrPort

Dim TargetRange As Range
Set TargetRange = Range("R2:R" & EventTarget.Row - 1).Find(ConcatInfo, LookIn:=xlValues)

If Not TargetRange Is Nothing And Not TargetRange.Row = EventTarget.Row Then
    'Range("F" & TargetRange.Row, "P" & TargetRange.Row).ClearContents
     Range("F" & TargetRange.Row, "P" & TargetRange.Row).Value = Empty
    End If
End If

Set TargetRange = Nothing
Set TargetRange = Range("R" & (EventTarget.Row + 1), Range("R" & (EventTarget.Row + 1)).End(xlDown)).Find(ConcatInfo, LookIn:=xlValues)
If Not TargetRange Is Nothing And Not TargetRange.Row = EventTarget.Row Then
    'Range("F" & TargetRange.Row, "P" & TargetRange.Row).ClearContents
    Range("F" & TargetRange.Row, "P" & TargetRange.Row).Value = Empty

End If

Exit Sub
错误处理: Application.EnableEvents=True
End Sub

请尝试以下代码:

Sub TestMe()
    Worksheets("NameOfWorksheet").Range("A" & 1, "Z" & 10).ClearContents
End Sub
然后用
TargetRange.Row
慢慢地更改
1
10
,看看它是否有效。
TargetRange
应定义为如下范围:

Dim TargetRange as Range

并设置为如下所示的某个范围:


Set TargetRange=工作表(1).范围(“A19”)
要清除单元格,可以将其指定为空:

worksheet.Cells(1, 1).Value = Empty

显示更多代码,您所显示的内容不会导致问题。如前所述,由于您没有在此处共享相关代码,因此没有人能够在没有大量假设的情况下真正帮助您。您从
Application.EnableEvents=False
开始,然后在最后您有
Exit Sub;错误处理:;Application.EnableEvents=True;结束子系统
在启用事件之前退出子系统。如果在代码中的其他地方有一个工作簿或工作表事件,其中包含
Application.screenUpdate=False
,则您将关闭屏幕更新,并且永远不会重新打开它。