Mám dva rozsahy A1: A4 a A5: A10. Chcem byť schopný zvýrazniť bunku, keď je dvakrát kliknutá z prvého rozsahu, povedzme A1, keď potom dvakrát kliknem na bunku v rovnakom rozsahu, povedzme A2, čím sa potom rozjasní A1 a zvýrazní sa A2. Chcem urobiť to isté pre druhý rozsah, ale nezávisle od seba, takže skončím s 2 zvýraznenými bunkami, jedným z každého rozsahu. Kód, ktorý práve používam, to momentálne robí pre druhý rozsah:
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
Vďaka!
odpovede:
0 pre odpoveď č. 1Ak je bunka dvakrát kliknutá Range("A1:A4")
potom zrušte farbu z celého rozsahu a zvýraznite cieľový rozsah. Urobte to isté pre 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 pre odpoveď č. 2
Ahh ok Vidím problém teraz. Problém je, že nastavujete BOTH predchádzajúce hodnoty buniek na target
, bez ohľadu na zvolený rozsah. Musíte zmeniť PreviousCell
a PreviousCell2
cieľ iba ak ich sa zmení príslušný rozsah. Takže ak Target
je v A1: A4, potom PreviousCell
sa zmení a ak Target
je v rozsahu A5: A10 PreviousCell2
by sa mali zodpovedajúcim spôsobom zmeniť.