DBにテーブルを接続しているので、ユーザーがこのテーブルのセルをクリックすると、テーブルのすべての行が選択されます。 。ここに私のコードのコピーです:Excelテーブル(ワークシートではない)のすべての行を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をどのように使用しているかに問題がある可能性があります。この行をインターネットからコピーしました。
私を助けることができますように!
純粋に論理的な観点から、私は 'Else'条件ブロック内の' Application.Intersect ... 'を囲む' Application.EnableEvents'ステートメントを保持しています。私はテーブル名のチェックがOPのニーズに完全に一致すると付け加えたいと思います。 – user3598756
ありがとうございます@ user3598756、私もそうだと思いますが、OPは 'msgbox'の代わりに何か他のものを選択したいと考えています。 – Fadi
ありがとうございますそれは完璧に動作します! – NattyRoots