0

2 つの異なるワークシート (各シートの同じ列) の 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
4

2 に答える 2

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
于 2013-10-16T09:49:14.053 に答える
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
于 2013-10-16T11:04:51.930 に答える