Вместо использования смещения вы можете сделать это в этом случае следующим образом:
Sub SetIt()
Dim rg As Range
Set rg = Range("B1:C31")
Dim sngRow As Range
For Each sngRow In rg.Rows
If sngRow.Cells(1, 1).Value = "Enabled" Then sngRow.Cells(1, 2).Value = 1
Next
End Sub
При смещении это будет выглядеть как
'With offset
Sub UseOffset()
Dim rg As Range
Set rg = Range("B1:B31")
Dim sngCell As Range
For Each sngCell In rg
If sngCell.Value = "Enabled" Then sngCell.Offset(0, 1).Value = 1
Next
End Sub
Третий способ - использовать массивы
'With Array
Sub UseArr()
Dim rg As Range
Set rg = Range("B1:C31")
Dim vDat As Variant
vDat = rg.value2
Dim i As Long
For i = LBound(vDat) To UBound(vDat)
If vDat(i, 1) = "Enabled" Then vDat(i, 2) = 1
Next i
rg.value2 = vDat
End Sub