2016-07-21 2 views
0

A1:A4とA5:A10の2つの範囲があります。最初の範囲からダブルクリックされたときにセルをハイライトすることができるようにしたいと思います。同じ範囲のセルをダブルクリックするとA2と表示され、A1とA2がハイライトされます。私は2番目の範囲で同じことをしたいが、お互いに独立しているので、2つの強調表示されたセル、各範囲の1つで終わるだろう。私は現在のみ使用していたコードは、現時点における第2の範囲のためにこれを行います。Vbaは2つ目のダブルクリックでセルを強調表示します.2つの範囲から書式を削除します

Public PreviousCell As Range 
Public PreviousCell2 As Range 

Private Sub Worksheet_BeforeDoubleClick(ByVal target As Range, Cancel As Boolean) 

If Not PreviousCell Is Nothing Then PreviousCell.Interior.ColorIndex = xlNone 



With target.Interior 
    If Not .ColorIndex = xlNone Then 
     .ColorIndex = xlNone 
    ElseIf Not Intersect(target, Range("A1:A4")) Is Nothing Then 
     .ColorIndex = 15 
    ElseIf Not .ColorIndex = 15 Then 
     .ColorIndex = xlNone 
    End If 
End With 
Cancel = True 

Set PreviousCell = target 

If Not PreviousCell2 Is Nothing Then PreviousCell2.Interior.ColorIndex = xlNone 

With target.Interior 
    If Not .ColorIndex = xlNone Then 
     .ColorIndex = xlNone 
    ElseIf Not Intersect(target, Range("A5:A10")) Is Nothing Then 
     .ColorIndex = 15 
    ElseIf Not .ColorIndex = 15 Then 
     .ColorIndex = xlNone 
    End If 
End With 
Cancel = True 

Set PreviousCell2 = target 

End Sub 

感謝を!

答えて

0

Range("A1:A4")でセルをダブルクリックした場合は、範囲全体の色をクリアし、ターゲット範囲を強調表示します。 Range("A5:A10")の場合も同じです。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
    If Not Intersect(Target, Range("A1:A4")) Is Nothing Then 
     Range("A1:A4").Interior.ColorIndex = xlNone 
     Target.Interior.ColorIndex = 15 
    ElseIf Not Intersect(Target, Range("A5:A10")) Is Nothing Then 
     Range("A5:A10").Interior.ColorIndex = xlNone 
     Target.Interior.ColorIndex = 15 
    End If 

End Sub 
+0

解決策は完璧です! – cah1991

+0

ありがとうございました! –

0

私は今問題を参照してください。問題は、選択した範囲にかかわらず、前のセルの値の両方をtargetに設定していることです。 対応範囲が変更された場合にのみ、PreviousCellPreviousCell2に変更する必要があります。したがってTargetがA1:A4内にある場合はPreviousCellが変更され、TargetがA5:A10内にある場合は、PreviousCell2をそれに応じて変更する必要があります。

関連する問題