0

私はコーディングの経験がほとんどないということから始めたいと思います。選択した範囲全体を強調表示するための VBA スニペットをオンラインで見つけました (視覚的なガイドとして):

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    Application.ScreenUpdating = False
    ' Clear the color of all the cells
    Cells.Interior.ColorIndex = 0
    With Target
        ' Highlight the entire column that contain the active cell
        .EntireRow.Interior.ColorIndex = 8

    End With
    Application.ScreenUpdating = True
End Sub

カーソルを列「J」にジャンプさせたいと思います。たとえば、「OK」を押した後に「ストロベリー トッピング」という単語を含むセルの検索を実行すると、そのテキストを含むセルがアクティブになり、VBA コードにより、行全体が強調表示されます。

最初に作業する必要があるセルは、列「J」にあります。ハイライトされている行と一緒に列 J を選択することはできますか?

お時間を割いていただき、誠にありがとうございました。

4

1 に答える 1

2

私のスリーセント

  1. xl2007+ を使用している場合は、使用しないでくださいTarget.Cells.Count。そうしないと、値を保持できないため、ユーザーが+をTarget.Cells.CountLarge押してすべてのセルを選択しようとすると、オーバーフロー エラーが発生します。CTRLATarget.Cells.CountLong
  2. 行と列を選択したい場合は、イベントをオフにすることをお勧めします。そうしないと、無限ループに陥る可能性があります。
  3. イベントを扱っているので、エラー処理を使用してください。

これはあなたがしようとしていることですか?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Rw As Long, Col As Long
    Dim ColName As String
    On Error GoTo Whoa

    If Target.Cells.CountLarge > 1 Then Exit Sub

    Application.ScreenUpdating = False
    Application.EnableEvents = False

    ' Clear the color of all the cells
    'Cells.Interior.ColorIndex = 0

    With Target
        Rw = .Row
        Col = .Column
        ColName = Split(Cells(, Col).Address, "$")(1)

        ' Highlight the entire column that contain the active cell
        '.EntireRow.Interior.ColorIndex = 8

        Range(ColName & ":" & ColName & "," & Rw & ":" & Rw).Select

    End With
LetsContinue:
    Application.ScreenUpdating = True
    Application.EnableEvents = True
    Exit Sub
Whoa:
    MsgBox Err.Description
End Sub
于 2013-11-05T17:19:35.423 に答える