2016-07-18 20 views
0

前の質問で、範囲からダブルクリックしたときにセル(A1)を別のセル(B1)細胞(例えば、A1〜A4)。私はダブルクリックされたセル(A1)を強調表示する方法も発見しました。私がA2をダブルクリックすると、値はB1の値に置き換えられます。 A1とA2の両方が強調表示される代わりに強調表示されます。最初のダブルクリックからハイライトを削除するには、2回目のダブルクリックが必要です。私が使用している VBはVbaをダブルクリックしてハイライトし、別のセルをダブルクリックして最初のセルのハイライトを削除します。

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

If Not Intersect(target, Range("A1:A4")) Is Nothing Then 
Cancel = True 
target.Copy 
Range("B1").PasteSpecial Paste:=xlPasteValues 
Application.CutCopyMode = False 
End If 

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 

End Sub 

あるすべてのヘルプはあなたが唯一の1つのセルは強調表示されるようにしたいとあなたの細胞の書式は他を持っていないと仮定すると、

答えて

1

素晴らしいことだ、あなただけの明確なすべての書式にすることができますすべてのダブルクリックの開始:

target.Parent.UsedRange.ClearFormats 

また、あなたがパブリック変数に前のセルの位置を格納することができ、その後、新しいクリックで書式設定を削除します。

Public PreviousCell As Range 

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

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

.... your code here .... 

Set PreviousCell = target 

End Sub 
+0

ありがとう@RGA 2番目のソリューションは完璧です! A1:A4の範囲を設定するには、A5:A10に別のデータセットがあるので、2番目の範囲のセルをダブルクリックすると、A1:A4のハイライト表示されたセルは削除されます。私は2つの強調表示されたセル、各範囲から1で終わりたい。 – cah1991

+0

@ cah1991次に、2つの "PreviousCell"変数(例えば、PreviousCell1とPreviousCell2)を作成し、次に 'target'の行と列をチェックしてダブルクリックされた範囲を確認します。 PreviousCell1を使用してA1:A4とPreviousCell2を参照してA5:A10を参照し、それに対応する領域のリセットのみを行います(If文を使用して) – RGA

+0

ありがとう@RGAこれは終わりですが、最初の範囲はisnハイライト表示は、2番目の範囲のみです。私はこれから何が欠けていますか? 公開PreviousCell2として範囲 ない.ColorIndex = xlNoneが続い .ColorIndex = xlNone のElseIf(対象、範囲(「A5を交差していない場合はPreviousCell2がtarget.Interior で次にPreviousCell2.Interior.ColorIndex = xlNone 何もしない場合: A10" は)) で エンドがcah1991 @ = trueを設定しPreviousCell2 =ターゲット End Subの – cah1991

関連する問題