[英]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.