VBA:如果更改的单元格在某个列中执行子程序

时间:2016-04-21 15:52:16

标签: vba intersect

我正在尝试创建一个在更改第13列中的任何单元格时运行的子例程。我已经阅读了很多堆栈溢出问题,但还没找到我的答案。这里有一些我读过:

Not activated by a change

Uses intersect. Doesn't address my issue

Might work but I'm not very good with events

我尝试使用交叉功能

使其工作
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

If Not Intersect (Target, Activesheet.Columns(13)) Is Nothing Then
    MsgBox "Help Help"
EndIf

End Sub

当我更改值时会有效,但如果单独保留一段时间,它会出现"运行时错误' 1004':方法'对象的交叉' _Global'失败&#34 ;.欢迎任何想法。如果有更简单的方法来实现这一点,我很想知道。感谢您的时间。

1 个答案:

答案 0 :(得分:1)

处理所有工作表,将其放在ThisWorkbook代码窗格

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

If Not Intersect(Target, Sh.Columns(13)) Is Nothing Then
    MsgBox "Help Help"
End If

End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

If Target.Column = 13 Then
    MsgBox "Help Help"
End If

End Sub

否则将以下内容放在您想要处理"处理"的工作表的代码窗格中。仅

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 13 Then
    MsgBox "Help Help"
End If

End Sub