Переместить формулы Excel программно - PullRequest
0 голосов
/ 18 января 2011

У меня есть приложение, которое экспортирует данные в таблицу Excel.Пользователь может добавить некоторые формулы в таблицу Excel после экспорта данных, как он может сделать =sum(o1:o12) и поместить результаты в o13.Пользователь также имеет возможность реэкспортировать данные на тот же лист.Что может случиться ... что более или менее строк было бы экспортировано в зависимости от некоторых условий.Например ... в прошлый раз было 12 строк, поэтому пользователь поместил формулу в строку 13, но на этот раз можно экспортировать 20 строк, поэтому Excel должен иметь возможность переместить формулу из ячейки o13 в o21 и обновить ее.формула от =sum(o1:12) до =sum(o1:20).В другом случае ... из приложения может быть экспортировано только 5 строк, поэтому формула должна сместиться в ячейку o6, а формула должна быть обновлена ​​до =som(o1:o5).

Есть ли способ попросить Excel сделатьэто программно?

1 Ответ

0 голосов
/ 18 января 2011

LastRow = Range("O65535").End(xlUp).Row вернет номер последней заполненной ячейки в столбце O.

Следующее, что нужно сделать, это:

Range("O" & LastRow+1).Value = "=Sum(O1:O" & LastRow & ")"
Range("O" & LastRow+1).formula = "=Sum(O1:O" & LastRow & ")" will work as well.

Последнее, когда вы используете LastRow = Range("O65535").End(xlUp).Row, будьте осторожны, если последняя ячейка в столбце O является формулой суммы.

Это должно работать, но не стесняйтесь задавать вопросы, если это не так

...