У меня есть цикл, который проходит по листу и редактирует цвет ячейки в зависимости от того, что находится в другой ячейке.
Весь этот код выполняется из MS Access на листе Excel, который экспортирует база данных.
For StartingCoumn2 = 11 To 14
Column2 = StartingCoumn2
For startingColumn = 15 To 18 'What columns we looking for
ColumnCalc = startingColumn
For startingRow = StartRow To LastWeekEndRow
If .Cells(startingRow, ColumnCalc).Value = 0 Then
.Cells(startingRow, ColumnCalc).Interior.ColorIndex = 3
ElseIf .Cells(startingRow, ColumnCalc).Value >= .Cells(startingRow, Column2).Value Then
.Cells(startingRow, ColumnCalc).Interior.ColorIndex = 4
ElseIf .Cells(startingRow, ColumnCalc).Value < .Cells(startingRow, Column2).Value Then
.Cells(startingRow, ColumnCalc).Interior.ColorIndex = 44
Else
.Cells(startingRow, ColumnCalc).Interior.ColorIndex = 3
End If
Next startingRow
Next startingColumn
Next StartingCoumn2
Моя проблема в startingColumn
, и StartingCoumn2
нужно переместить оба +1, когда он заканчивает строки.
Например, я заполнил код, надеюсь, это поможет людям концептуально
For StartingCoumn2 = 11 To 14
Column2 = 11
For startingColumn = 15 To 18 'What columns we looking for
ColumnCalc = 15
For startingRow = 9 To 12
If .Cells(9, 15).Value = 0 Then
.Cells(9, 15).Interior.ColorIndex = 3
ElseIf .Cells(9, 15).Value >= .Cells(9, 11).Value Then
.Cells(9, 15).Interior.ColorIndex = 4
ElseIf .Cells(9, 15).Value < .Cells(9, 11).Value Then
.Cells(9, 15).Interior.ColorIndex = 44
Else
.Cells(startingRow, ColumnCalc).Interior.ColorIndex = 3
End If
Next startingRow
Next startingColumn
Next StartingCoumn2
Когда он заканчивает строку и переходит к следующему столбцу, который требует редактирования (startingColumn
), сравниваемый столбец (StartingCoumn2
) не перемещается, то есть сравниваются неправильные столбцы.
For StartingCoumn2 = 11 To 14
Column2 = 11
For startingColumn = 15 To 18 'What columns we looking for
ColumnCalc = 16
For startingRow = 9 To 12
If .Cells(9, 16).Value = 0 Then
.Cells(9, 16).Interior.ColorIndex = 3
ElseIf .Cells(9, 16).Value >= .Cells(9, 11).Value Then
.Cells(9, 16).Interior.ColorIndex = 4
ElseIf .Cells(9, 16).Value < .Cells(9, 11).Value Then
.Cells(9, 16).Interior.ColorIndex = 44
Else
.Cells(startingRow, ColumnCalc).Interior.ColorIndex = 3
End If
Next startingRow
Next startingColumn
Next StartingCoumn2
Как мне заставить StartingCoumn2
двигаться одновременно?Я пробовал Next startingColumn
, StartingCoumn2
, но ничего не произошло.