Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Его комбинация адресации R1C1
и A1
. Вам нужно выбрать один метод и использовать его для обеих частей. Обратите внимание: если вы введете =f(R[-1]C[0],Sheet1!F16)
в ячейку, вы получите ошибку по той же причине.
Вы говорите, что вам нужно использовать стиль R1C1 для первого адреса, но (предполагая, что это происходит потому, t хотите абсолютный адрес), вы можете использовать .Offset
вместо
ActiveCell.Value = "=f(" & ActiveCell.Offset(-1, 0).Address(False, False) _
& ",Sheet1!" & ColumnLetter & i & ")"
Апостроф означает Excel, что он должен интерпретировать его как текст.
Записать его в ActiveCell.Formula. Таким образом, это признается как Формула.