我有一个表连接到一个数据库,我想要做的是当用户点击这个表中的一个单元格:它选择表中的所有行。下面是我的代码的副本:选择excel表(不是工作表)上的所有行w/VBA
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If inTabRange(ActiveCell) Then
ActiveSheet.ListObjects("tabRecherche").ListRows(ActiveCell.row).Range.Select
Else
MsgBox "Hello"
End If
End Sub
Private Function inTabRange(cellRange As Range) As Boolean
inRange = Not (Application.Intersect(cellRange, Range("Q14:AI700")) Is Nothing)
End Function
“tabRecherche”是我的表的名称和它的范围是从Q14到AI700
我的问题是,当我调用函数“inTabRange”,是否不是它返回True,代码将进入Else部分并调用MsgBox。
这可能是我如何使用Application.Intersect的一个问题:我从Internet复制了这一行。
希望你能帮助我!
从纯粹逻辑的角度来看,我会在'Else'条件块内保留'Application.Intersect ...'的'Application.EnableEvents'语句。我还会补充一点,检查表名将完全符合OP的需求 – user3598756
谢谢@ user3598756,我也是这么想的,但也许OP想选择其他任何东西而不是'msgbox'。 – Fadi
谢谢你完美的作品! – NattyRoots