Excel VBA:自动将宏应用于单元格

时间:2018-06-15 08:29:33

标签: excel vba excel-vba

我正在学习单元格的自动触发宏。我很好奇这是否适用于一系列细胞而不是1比1? 我的情况是:如果我输入A列中的任何单元格,“Hello”将出现在相应行的B列中。我的问题是,例如,如果我在A1中输入(然后B1将显示为“Hello”),然后我从A1拖到A1​​0,我怎样才能使宏自动应用于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

1 个答案:

答案 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