Этот код VBA в основном имитирует клики пользователей и не использует большую часть объектной модели.
Ознакомьтесь с Workbook.Names
и Worksheet.Names
и классом Excel.Name
: вы можете получить Range
упоминается Name
через его RefersToRange
свойство.
При присваивании Range.Formula
присваивается формула каждой ячейке этого диапазона:
With ThisWorkbook.Names
.Item("namedcell0").RefersToRange.Formula = "0" ' why is this a string literal?
.Item("namedcell1").RefersToRange.Formula = c
.Item("namedcell2").RefersToRange.Formula = d
End With
Нет необходимости Calculate
явно (при условии, что режим расчета является автоматическим - в противном случае рассмотрите возможность расчета только один раз после написания всех формул).