Выбор ячеек перед изменением их значения не требуется, и FormulaR1C1
является излишним, так как вы не вводите диапазон в формуле. Следующее должно делать то же самое, но я думаю, что легче следовать и отлаживать.
** То же предостережение, что и у Джима относительно смещений, они выглядят немного странно, но, возможно, это то, что задумано **
</p>
<pre> Dim ActualStartDate, ProjectedStartDate
ActualStartDate = ActiveCell.Offset(-1, -1)
ProjectedStartDate = ActiveCell.Offset(1, 0)
If ActualStartDate = ProjectedStartDate Then
ActiveCell.Offset(-1, -1).Interior.Color = RGB(0, 0, 255)
End If
Явное объявление типа ваших переменных как Date
также является хорошей идеей, так как в противном случае они хранятся внутри как Variant
тип данных, который требует больше памяти и может привести к непредвиденным последствиям, так как на Excel остается ответственность решая, как обрабатывать данные.
Dim ActualStartDate as Date
Dim ProjectedStartDate as Date
ActualStartDate = ActiveCell.Offset(-1, -1)
ProjectedStartDate = ActiveCell.Offset(1, 0)
If ActualStartDate = ProjectedStartDate Then
ActiveCell.Offset(-1, -1).Interior.Color = RGB(0, 0, 255)
End If