У меня есть несколько ячеек, которые содержат следующие формулы (их гораздо больше, но я просто показываю одну в качестве примера, все они следуют одной и той же схеме использования базовых операций, таких как + или - со значениями внутри определенных ячеек)
=+$O11+$N11+$M11
и мне нужно переместить каждый столбец на один влево, чтобы в итоге получилось что-то вроде
=+$N11+$M11+$L11
Дело в том, что я уже написал код, который определяет, действительно лиячейка имеет формулу или только значение
for each cell in Selection // im using a selection for testing purposes only
if cell.hasFormula() = true then
end if
next cell
, но я все еще выясняю, как сместить все ссылки на столбцы на одну влево, единственный код, который я написал, пытаясь это сделать, не работает
auxiliary = "=offset(" + Replace(cell.formula, "=","") + ",0,1)"
cell.formula = auxiliary
Обновление 1
Существуют формулы, которые используют только 1 ячейку, чтобы проверить, установлена она или нет, до 8 ссылочных ячеек.Числа или ссылки перемещаются вокруг этих 2 ранее указанных чисел
Обновление 2
Я обнаружил следующее свойство с именем Precedents, которое возвращает диапазон ссылок, по крайней мере, это то, что происходит, если я применяю его ксформулированная ссылка, т. е. в первом примере прецеденты будут возвращать $ O $ 11: $ M $ 11
Обновление 3
Существует еще два типа формул, помимо указанных выше, первый - формулы сa Сумма, т.е.
=Sum($R20:$AC20)
И с IF, например,
=IF($BG20=0,1," ")
Все ссылки на ячейки внутри этой формулы должны быть сдвинуты влево на 1.