簡體   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