Перетаскивание формул взаимодействия C # excel - PullRequest
1 голос
/ 19 ноября 2010

Я использую инфраструктуру взаимодействия C # excel для автоматизации генерации множества отчетов для моей компании, и мне интересно, знает ли кто-нибудь, как сделать уравнение перетаскиванием с этим.

Если бы я мог сделать это с именованным диапазоном, это было бы еще лучше, но даже если бы мне пришлось жестко кодировать строки, чтобы они соответствовали перетаскиванию A10: J10 до A20: J20, это, вероятно, было бы хорошо.

Даже любые указатели на веб-страницу, объясняющие, как это сделать, будут очень благодарны, так как я застрял на этом.

Спасибо!

Ответы [ 4 ]

5 голосов
/ 19 ноября 2010

У объекта Range есть метод AutoFill, попробуйте это.

range.AutoFill(destinationRange);
1 голос
/ 15 мая 2018

Вы можете использовать следующий фрагмент. Надеюсь быть полезным

Excel.Range r1 = xlWorksheet.Range[xlWorksheet.Cells[offset , 1], xlWorksheet.Cells[offset, 1]];
Excel.Range r2 = xlWorksheet.Range[xlWorksheet.Cells[offset, 1], xlWorksheet.Cells[offset + 10, 1]];
r1.AutoFill(r2, Excel.XlAutoFillType.xlFillCopy);
0 голосов
/ 19 ноября 2010

Вы можете создать таблицу Excel (ListObject), вызвав метод Add из коллекции ListObjects объекта Worksheet. Это эквивалентно использованию команды «Формат таблицы» в Excel. Любое уравнение, введенное в строку таблицы, будет автоматически заполнять все строки таблицы, используя относительные ссылки на столбцы таблицы. Это поведение включено по умолчанию, но может управляться настройкой в ​​

Globals.ThisWorkbook.Application.AutoCorrect.AutoFillFormulasInLists
0 голосов
/ 19 ноября 2010

Я сделал что-то подобное не так давно. Вот пример моего кода:

Excel.Range rng, rngResize;
rng = (Excel.Range)oSheet.get_Range("A10", "J10");
rngResize = rng.get_Resize(10, Missing.Value);
rngResize.Formula = "=B9+I8";

Формула применяется относительно. И я использовал отдельные переменные для каждого шага, чтобы они могли быть Disposed. Дайте мне знать, если это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...