2013-10-16 4 views
0

두 개의 서로 다른 워크 시트 (각 시트의 같은 열)의 두 열을 비교 한 다음, 증가 또는 감소했는지 비교 한 다음 셀의 색을 빨강 또는 녹색으로 변경하여 증가 또는 감소했는지 나타냅니다. 그러나 내 수식이 작동하지 않습니다 ... activecell 및 activecell 오프셋을 사용하여 같은 시트의 열을 시도했는데 효과가 있었지만 다른 시트에서 참조 할 수없는 것 같습니까? 하지만 내 (unworking) 코드가 ...2 개의 워크 시트에서 두 개의 열을 비교하여 루프를 비교하고 기준을 높이거나 낮추는 방법은 무엇입니까?

Sub test3() 
     Range("A1").Select 
Do 
    If ActiveWorkbook.worksheets(“Sheet1!”).Cell(ActiveCell) > ActiveWorkbook.worksheets(“Sheet2!”).Cell(“A1”) Then 
     ActiveCell.Interior.Color = RGB(255, 0, 0) 
    ElseIf ActiveWorkbook.worksheets(“Sheet1!”).Cell(ActiveCell) < ActiveWorkbook.worksheets(“Sheet2!”).Cell(“A1”) Then 
     ActiveCell.Interior.Color = RGB(0, 255, 0) 
    Else 

    End If 
     ActiveCell.Offset(1, 0).Select 
Loop Until IsEmpty(ActiveCell) 
End Sub 
+1

내가 당신의 문제는 비교에서 두 번째 전지 생각은 항상 "A1"입니다. – ForkandBeard

+0

하드 코딩 된'A1' 외에도 여러분이하고있는 방식을 반복하지 않고'ActiveWorkbook'과'ActiveCell' 참조를 모두 단순화 할 수 있습니다. 아래 대체 방법을 제안했습니다 –

답변

1

는 당신이 필요로하는 어떤 컬럼 인덱스에 열을 설정해야합니다,이보십시오.

Dim row As Integer 
Dim column As Integer 

row = 1 
column = 1 

ActiveWorkbook.Worksheets("Sheet1!").Cells.Interior.Color = RGB(255, 255, 255) 

Do While ActiveWorkbook.Worksheets("Sheet1!").Cells(row, column) <> "" 

    If ActiveWorkbook.Worksheets("Sheet1!").Cells(row, column) <> ActiveWorkbook.Worksheets("Sheet2!").Cells(row, column) Then 
     If ActiveWorkbook.Worksheets("Sheet1!").Cells(row, column) > ActiveWorkbook.Worksheets("Sheet2!").Cells(row, column) Then 
      ActiveWorkbook.Worksheets("Sheet1!").Cells(row, column).Interior.Color = RGB(255, 0, 0) 
     Else 
      ActiveWorkbook.Worksheets("Sheet1!").Cells(row, column).Interior.Color = RGB(0, 255, 0) 
     End If 
    End If 
    row = row + 1 
Loop 
+0

도움을 주셔서 대단히 감사합니다! 그러나 런타임 오류 9 아래 첨자가 범위를 벗어났다는 오류가 있습니까? 저것에 대한 아이디어가 있습니까? –

+0

코드 줄은 무엇입니까? – ForkandBeard

+0

잘 모르겠다 - 어떤 라인과 관련이 있는지 어떻게 알 수 있습니까? –

0

이 작동합니다 - 당신의 요구에 맞게 colorRng 참조를 변경 :

Sub ColorCode() 
    Dim cl As Range, colorRng As Range 

    Set colorRng = Worksheets(1).Range("A1:A10") 

    For Each cl In colorRng 
     If cl > Worksheets(2).Cells(cl.Row, cl.Column) Then 
      cl.Interior.Color = RGB(255, 0, 0) 
     Else 
      cl.Interior.Color = RGB(0, 255, 0) 
     End If 
    Next cl 
End Sub 
관련 문제