2013-04-24 2 views
0

도와주세요. vba 코딩에서 색상을 사용하는 방법을 모릅니다. 가능한 한 간단하게 설명하려고 노력할 것입니다.Excel 2007 vba if 문이 귀한 셀 색상을 기반으로 셀 색상을 채우십시오.

나는 D3에서 AH564까지 셀에 값이 없으며 절대로 존재하지 않습니다. 이러한 셀의 색상을 파란색으로 바꾼다면 옆에있는 14 개의 셀 (R1C14)을 녹색으로 변경 한 다음 다시 14 개의 셀을 파란색으로, 다시 녹색으로 변경해야합니다. 단지 세 번. 녹색으로 셀을 변경하면 똑같은 일을합니다.

나는 사이트에서 발견 된 여러 가지 코드를 시도하고이를 내 필요에 맞게 수정했지만 모두 값을 사용하고 색상이 어디서부터 시작해야 할지도 모릅니다. 블루 (RGB) 0, 112, 192 녹색 (RGB) 146, 208,

80 제가 매크로 다른 색으로 3 회 14 셀을 변경하려면 다음과 같이

배경색이다.

모든 도움에 감사드립니다.

답변

1

셀이 변경 될 때 트리거되는 VBA 코드를 가질 수 있습니다.

셀을 다른 색으로 포맷해도 변경 이벤트가 트리거되지 않으므로 셀 채우기 만 변경하면 매크로가 실행되지 않습니다.

채우기 색으로 셀의 서식을 지정하는 대신 숫자 또는 텍스트를 셀에 입력 할 수 있습니다. 값이있는 셀의 색을 변경하는 조건부 서식을 사용할 수 있습니다.

는 셀 트리거 변경 이벤트에 문자 나 숫자를 입력하고, 해당 이벤트가 쉽게 다른 셀의 채움 색상을 변경할 수있다.

셀에 값이 1 인 경우 조건부 서식을 설정하십시오. 1이면 파란색으로 파란색으로 채 웁니다. 이렇게하면 숫자가 표시되지 않습니다.

그런 다음이 매크로 사용 (마우스 오른쪽 단추로 클릭하고, 시트 탭을 "코드보기"를하고 코드 창에 코드를 붙여 넣습니다) 트리거 셀이 모든 이상 될 수 있다면

Option Explicit 

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Not Intersect(Target, Range("D3:AH564")) Is Nothing Then 
     If Target = 1 Then 
      Target.Offset(0, 14).Interior.Color = RGB(146, 208, 80) 
      Target.Offset(0, 28).Interior.Color = RGB(0, 112, 192) 
      Target.Offset(0, 42).Interior.Color = RGB(146, 208, 80) 
     End If 
    End If 

End Sub 

그것은 분명하지 않다 범위 또는 D 열에만 있습니다. 매크로는 사용자가 정의한 것을 수용하도록 조정할 수 있습니다.

편집 : 내가 지금 장난 시작할 수 있으며, 정보 필립에 대한

명시 적 옵션

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim cel As Range 
    If Not Intersect(Target, Range("D3:AH564")) Is Nothing Then 
     If Target.Rows.Count > 0 Then 
      For Each cel In Target 
       If cel = 1 Then 
        cel.Offset(0, 14).Interior.Color = RGB(146, 208, 80) 
        cel.Offset(0, 28).Interior.Color = RGB(0, 112, 192) 
        cel.Offset(0, 42).Interior.Color = RGB(146, 208, 80) 
       End If 
      Next cel 
     End If 
    End If 

End Sub 
+0

트리거가 끝나야합니다. 나는 그 변화에 대해 이해한다. 여전히 버튼을 사용하거나 변경할지 결정할 것입니다. 그때까지 나는 다음과 같은 문제가있다. 복사하여 여러 셀에 "1"붙여 넣으면 오류가 발생합니다. 필자는 1 또는 2를 오랫동안 삭제할 때 다른 색상과 빈 칸을 추가했습니다. 코드 주셔서 감사합니다. 고맙습니다. – user1955214

+0

여러 셀에 붙여 넣을 수 있도록 코드를 추가했습니다. – teylyn

+0

@ Teylyn, 그것은 절대적으로 완벽하고, 그것을 고칠 것이라고 gunted wouldnt. atleast 메신저 매일 배웁니다. 모든 도움에 감사드립니다. – user1955214

1

당신은 셀의 내부 속성을 사용해야하고, 다음 :

당신은 (Excel에서 56 "사전"색상 중 하나를 사용하는) ColorIndex를 사용할 수 있습니다

ActiveCell.Interior.ColorIndex = 36 

을 또는 당신에게 색상을 사용할 수 있습니다

Range("A1:A6").Interior.Color = RGB(0,112,192) 

당신은 칩 피어슨의excellent article on using colors in Excel VBA

에서이를 읽을 수 있습니다
+0

감사하고 : 복사 및 여러 셀에 값을 붙여 넣을 경우

,이 시도 잘하면 어딘가에 도착하십시오. 일단 내가 알아 내면 다른 사람이 이미 저를위한 코드를 가지고있을 것입니다. 나는 대답으로 그것을 닫을 것입니다. – user1955214

관련 문제