繁体   English   中英

如果另一个单元格在 Vba 中更改,如何清除单元格的内容

[英]How To Clear Contents of A Cell If Another Cell Changes In Vba

我对 vba 非常陌生,我在工作表 1 中有一个 A 列,在工作表 2 中有一个 B 列。我想如果工作表 1 A 列中的一个单元格发生变化,那么工作表 2 B 列中的一个单元格也应该改变。

Private Sub Worksheet_Change (ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then
Sheets("Sheet2").Range("B:B").ClearContents
End If
End Sub

我已经试过了,但它只是清除了整个专栏。

任何帮助将不胜感激。

其中之一应该可以解决问题:

Option Explicit
'
' If cell is edited in any way
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count = 1 And Not Intersect(Target, Range("A:A")) Is Nothing Then
    Sheets("Sheet2").Range("B" & Target.Row).ClearContents
    End If
End Sub
'
' If cell is cleared
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Value = "" And Target.Cells.Count = 1 And Not Intersect(Target, Range("A:A")) Is Nothing Then
    Sheets("Sheet2").Range("B" & Target.Row).ClearContents
    End If
End Sub

工作表更改:清除另一个工作表中的内容

Private Sub Worksheet_Change(ByVal Target As Range)
    
    Const SOURCE_COLUMN As String = "A"
    Const DESTINATION_NAME As String = "Sheet2"
    Const DESTINATION_COLUMN As String = "B"

    Dim dws As Worksheet, srg As Range, ColumnOffset As Long
    
    With Me
        Set srg = Intersect(Target, .Columns(SOURCE_COLUMN))
        If srg Is Nothing Then Exit Sub
        ColumnOffset = .Columns(DESTINATION_COLUMN).Column _
            - .Columns(SOURCE_COLUMN).Column
        Set dws = .Parent.Worksheets(DESTINATION_NAME)
    End With

    Dim durg As Range, drg As Range, sarg As Range
    
    For Each sarg In srg.Offset(, ColumnOffset).Areas
        Set drg = dws.Range(sarg.Address)
        If durg Is Nothing Then Set durg = drg Else Set durg = Union(durg, drg)
    Next sarg

    If Not durg Is Nothing Then durg.ClearContents

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM