如何使用与表范围相交

时间:2015-12-11 20:48:00

标签: excel excel-vba vba

我需要修改下面的代码才能使用表格范围而不是单元格范围。下面的代码允许给定范围之间的选定单元格从9变为0,如果选择则再次返回。但是我需要这个来使用Table,例如Table1 Column1是我的范围而不是G5到G1604。我想这样,当我为它指定Column1时,将整个列作为范围

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

 If Not Intersect(Target, Range("G5:G1604")) Is Nothing Then
  If Target.Value = 9 Then
        Target.Value = 0
    Else
    Target.Value = 9
  End If
 End If
End Sub

1 个答案:

答案 0 :(得分:3)

请参阅Excel VBA for Tables

上的这篇精彩教程

您的代码将如下所示(相应地调整表名和列引用):

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

 If Not Intersect(Target, Me.ListObjects("Table1").ListColumns(1).DataBodyRange)) Is Nothing Then
  If Target.Value = 9 Then 
        Target.Value = 0
    Else
    Target.Value = 9
  End If
 End If

End Sub

作为旁注:您确定要让此代码在工作表上从一个单元格移动到另一个单元格每次吗?或者,您是否希望每次对表格列中的单元格进行更改时触发它?如果是后者,请更改为Worksheet_Change事件。