If you want the ReadOnly setting respected when using the data object directly, you will have to test it.
If Not data(row, col).GetValue(data(row, col).ReadOnlyProperty) Then
data(row, col).SetValue(data(row, col).CellValueProperty, decWorkMax)
End If