У мене два діапазони A1: A4 і A5: A10. Я хочу бути в змозі виділити клітинку, коли він двічі клацнув з першого діапазону сказати А1, коли я потім двічі клацніть по клітці в тому ж діапазоні сказати A2 це буде потім виділити A1 і виділити A2. Я хочу зробити те ж саме для другого діапазону, але незалежно один від одного, тому я закінчу з 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 для відповіді № 1Якщо клітинка двічі натиснута 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 для відповіді № 2
Ahh ok я бачу питання зараз. Проблема полягає в тому, що ви встановлюєте попередні значення BOTH на target
, незалежно від вибраного діапазону. Вам потрібно змінити PreviousCell
і PreviousCell2
орієнтуватися тільки коли їх відповідний діапазон змінено. Так якщо Target
потім знаходиться в межах A1: A4 PreviousCell
буде змінено, і якщо Target
потім знаходиться в межах A5: A10 PreviousCell2
повинні бути змінені відповідно.