2017-03-17 7 views
1

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をどのように使用しているかに問題がある可能性があります。この行をインターネットからコピーしました。

私を助けることができますように!

答えて

2

このコードは、ワークシート内の任意のテーブルで動作します:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

    Dim LObj As ListObject 
    Set LObj = ActiveCell.ListObject  

    If LObj Is Nothing Then 
    MsgBox "Hello" 
    Else 
    Application.EnableEvents = False 
     Application.Intersect(LObj.Range, ActiveCell.EntireRow).Select 
    Application.EnableEvents = True 
    End If  

End Sub 
+1

純粋に論理的な観点から、私は 'Else'条件ブロック内の' Application.Intersect ... 'を囲む' Application.EnableEvents'ステートメントを保持しています。私はテーブル名のチェックがOPのニーズに完全に一致すると付け加えたいと思います。 – user3598756

+0

ありがとうございます@ user3598756、私もそうだと思いますが、OPは 'msgbox'の代わりに何か他のものを選択したいと考えています。 – Fadi

+1

ありがとうございますそれは完璧に動作します! – NattyRoots

1
Option Explicit 

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    If inTabRange(Target) Then 
     ActiveSheet.ListObjects("tabRecherche").Range.Rows.Select 
    Else 
     MsgBox "Hello" 
    End If 
End Sub 

Private Function inTabRange(cellRange As Range) As Boolean 
    inTabRange = Not Application.Intersect(cellRange, ActiveSheet.ListObjects("tabRecherche").Range) Is Nothing 
End Function 

を(このソリューションは、単にあなたのコードを修正ファディのソリューションは優れている。。)

編集:置き換えActiveSheet.Rows( Target.Row).Select ActiveSheet.ListObjects( "tabRecherche")。Range.Rows.Select - これで、行だけでなくテーブル全体が選択されます。おっとっと。

関連する問題