VBA:如果更改的单元格位于某个列中,请执行子程序



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

未通过更改激活

使用相交。无法解决我的问题

可能有效,但我不太擅长事件

我试图使用相交功能使其工作

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'的相交失败"。欢迎任何想法。如果有更简单的方法可以实现这一目标,我很想知道。谢谢你的时间。

若要处理所有工作表,请将其放在"此工作簿"代码窗格中

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

相关内容

  • 没有找到相关文章

最新更新