2016-08-24 3 views
1

특정 셀을 깜박이게하는 코드를 사용하고 있습니다. 선택한 셀만 깜박이도록 코드를 수정했습니다. 문제는 선택을 변경 한 후 매크로가 셀에 "머물러 있지"않는다는 것입니다. 예 : 셀 B6을 선택하고 매크로를 실행하면 깜박이기 시작한 다음 셀 B7을 선택하고 B6이 깜박임을 멈추지 만 B7이 시작되어 매크로를 실행하지 않습니다. 어떻게 해결할 수 있습니까?선택 범위 내에서 셀을 깜박임

현재 코드 :

Option Explicit 
Dim NextBlink As Double 

Sub StartBlinking() 

    If Selection.Interior.ColorIndex = 3 Then 
     Selection.Interior.ColorIndex = 0 
    Else 
     Selection.Interior.ColorIndex = 3 
    End If 
    NextBlink = Now + TimeSerial(0, 0, 0.6) 
    Application.OnTime NextBlink, "StartBlinking", , True 

End Sub 
+0

코드는 선택된 셀을 깜박입니다. 셀을 선택하지 않으면 깜박임이 중지됩니다. – PaichengWu

+0

그 해결책은 무엇입니까? – Pawel

+0

이전에 선택한 셀 배열을 유지 한 다음 이미 배열에있는 항목을 다시 선택해야합니다. 나는 그것이 쉽다는 것을 말하지 않고있다 ... –

답변

1

이 시도가 :

Option Explicit 
Dim NextBlink As Double 
Dim blinkingcells As Range 
Sub StartBlink() 'call this make current cell start blinking 
    If blinkingcells Is Nothing Then 
     'start blinking 
     Set blinkingcells = Selection 
     Call Blinking 
    Else 
     'blinking already, just add more blinkingcells 
     Set blinkingcells = Union(blinkingcells, Selection) 
    End If 
End Sub 

Sub Blinking() 
'make cells in global range "blinkingcell" blink 
    Dim cell As Range 
    For Each cell In blinkingcells 
     If cell.Interior.ColorIndex = 3 Then 
      cell.Interior.ColorIndex = 0 
     Else 
      cell.Interior.ColorIndex = 3 
     End If 
    Next 
    NextBlink = Now + TimeSerial(0, 0, 0.6) 
    Application.OnTime NextBlink, "Blinking", , True 
End Sub 
+0

완벽하게 작동합니다. 감사! – Pawel