우리는 배경 녹색 일정에있는 작업의 색상 및 세트 빨간색으로 일정 뒤에있는 작업의 배경 색상을 설정 엑셀 VBA에서 프로그램을보고 아래.

상황 :

Sheet1의에 우리는 세 가지 작업 (X, Y, Z)를 가지고있다. A “1”작업이 완료되었음을 나타냅니다. 작업은 일정에있는 모든 열까지의 “1”존재하는 오늘의 날짜를 포함하는 경우. 오늘은 6 ~ 6 월이다. 작업 X와 Y는 일정에 있습니다. 작업 Z 일정 (NO “1”셀 E8) 뒤에.

Tasks on Schedule in Excel VBA

워크 시트 변경 이벤트를 만듭니다. 워크 시트에서 셀을 변경할 때 워크 시트 변경 이벤트에 추가 된 코드는 엑셀 VBA에 의해 실행됩니다.

  1. Visual Basic 편집기.

프로젝트 탐색기에서 시트 1 (Sheet1의) 2. 두 번 클릭합니다.

왼쪽 드롭 다운 목록에서 워크 시트를 선택합니다. 오른쪽 드롭 다운 목록에서 변경을 선택합니다.

Worksheet Change Event in Excel VBA

워크 시트 변경 이벤트에 다음 코드 줄을 추가합니다

두 유형의 정수 변수를 선언 4.

Dim i As Integer, j As Integer

DO가 While 루프를 추가 5..

Do While Cells(6 + i, 1).Value <> ""

i = i + 1

Loop

설명 : 난 1 등 태스크 Y = i에 0, 엑셀 VBA 점검 작업을 X = 들어

Value는 세포가 비어 루프 (더 이상 작업을 확인하기 위해) (I, 1 + 6) 때 동안 엑셀 VBA는 할 일을 떠난다.

루프 동안 할 일 (6, 7, 8에서) 다음 코드 줄을 추가합니다.

  1. 초기화 값을 0으로, 변수 J

j = 0
  1. (이 반드시 물론 사실이 아니다) 작업이 일정에 있다고 가정 녹색으로 작업의 배경색을 설정합니다.

Cells(6 + i, 1).Interior.ColorIndex = 4

또 다른 않지만 루프를 추가 8..

Do While Cells(4, 2 + j).Value <= Date

If Cells(6 + i, 2 + j).Value = 0 Then Cells(6 + i, 1).Interior.ColorIndex = 3

j = j + 1

Loop

참고 : 날짜 함수는 오늘 날짜를 반환합니다.

설명 : i가 0, J = 0, 엑셀 VBA 검사 셀 B6 =를 들어. 내가 0, J = 1, 엑셀 VBA를 확인 세포 C6를 = 들어 “1”오늘 날짜까지의 모든 열 위로에있는 경우 등 작업은 일정에 있습니다. 엑셀 VBA가 “0”을 발견하면 빨간색으로 작업의 배경 색상을 설정합니다.

  1. 테스트 프로그램. 예를 들어, 6 6 월에 그 작업 Z이 완료되었음을 나타냅니다. 그 결과, 작업 Z가 자동으로 녹색으로 바뀝니다.

Tasks on Schedule Result