/ / Vba zvýrazniť dvojité kliknutie bunky s druhým dvojitým kliknutím odstránenie formátovanie z 2 rozsahov - Excel, VBA, Excel-VBA

Vba zvýraznite dvojité kliknutie bunky druhým dvojitým kliknutím odstránenie formátovania z 2 rozsahov - excel, vba, excel-vba

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ď č. 1

Ak 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ť.