2014-05-16 1 views
0

인턴쉽을위한 프로젝트를 진행하고 있는데 파일의 요청 중 일부는 더블 클릭으로 Excel 상자의 색상을 변경할 수 있다는 것입니다.여러 색상으로 클릭하여 엑셀 상자를 교체 한 다음 지우십시오.

예, 아니요 및 해당 없음 상자가 있습니다. 그래서 내가 원하는 것은 빨강, 초록, 회색, 그리고 다시 맑은 색으로 상자의 색을 바꿀 수 있다는 것입니다. 처음 두 번 클릭하면 클릭하면 변경됩니다. 지금까지 제가 가지고있는 것들이 저를 빨강에서 초록색으로 바꾸어 놓았습니다. 어떤 도움을 주셔서 감사합니다.

Private Sub Worksheet_BeforeDoubleClick(_ 
     ByVal Target As Range, Cancel As Boolean) 
' This macro is activated when you doubleclick 
' on a cell on a worksheet. 
' Purpose: color or decolor the cell when clicked on again 
     If Target.Interior.ColorIndex = 3 Then 
      ' if cell is already red, make the cell green 
      Target.Interior.ColorIndex = 4 
     Else 
      ' make the cell red: 
      Target.Interior.ColorIndex = 3 
     End If 
     ' true to cancel the 'editing' mode of a cell: 
     Cancel = True 
End Sub 
+0

그것은 당신이 단지 녹색에서 회색으로 TET에 논리 동일한 유형의 당신을'ElseIf'을 추가 할 수 있습니다처럼 보이는 (빨간색 다시 회색 및 다른?), 그것은 같은 순서 –

+0

나는 항상이기 때문에 'Target.Interior.Color'와'ColorIndex' 대신에 고정'RGB()'값을 사용합니다, 그렇지 않으면 당신의 색깔이 사용자간에 일관성이 없을 수 있습니다. –

+0

오른쪽 클릭을 만들기위한 보너스 포인트는 뒤로 이동합니다! – RubberDuck

답변

0

ColorIndex 값이 적절하지 않은 경우 필요에 따라 값을 변경하십시오. Case Else 색을 빈 셀에 추가했습니다.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
    Select Case Target.Interior.ColorIndex 
     Case 3 
      Target.Interior.ColorIndex = 4 
     Case 4 
      Target.Interior.ColorIndex = 5 
     Case 5 
      Target.Interior.ColorIndex = 3 
     Case Else 
      Target.Interior.ColorIndex = 3 
    End Select 
    Cancel = True 
End Sub 
관련 문제