我正在学习单元格的自动触发宏。我很好奇这是否适用于一系列细胞而不是1比1? 我的情况是:如果我输入A列中的任何单元格,“Hello”将出现在相应行的B列中。我的问题是,例如,如果我在A1中输入(然后B1将显示为“Hello”),然后我从A1拖到A10,我怎样才能使宏自动应用于B2 - > B10?目前,我遇到了“运行时错误'13' - 类型不匹配”。
我目前的剧本:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
i = Target.Row
If Not Intersect(Target, Range("A:A")) Is Nothing Then
If Target <> "" Then
Cells(i, 2) = "Hello"
Else
Cells(i, 2).ClearContents
End If
End If
End Sub
答案 0 :(得分:0)
使用Offset,它是相对的,如果它是多个单元格,则循环遍历Target。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer, r As Range
If Not Intersect(Target, Range("A:A")) Is Nothing Then
For Each r In Intersect(Target, Range("A:A")
If r <> "" Then
r.Offset(, 1).Value = "Hello"
Else
r.Offset(, 1).ClearContents
End If
Next r
End If
End Sub