Ошибка Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: «»object» не содержит определения для «get_Range»»

Если вы видите подобную ошибку:

Это говорит о том что вы используете устаревший синтаксис при работе с библиотекой Microsoft.Office.Interop.Excel

Раньше можно было напрямую обращается к ячейке при ее выделении таким способом:

Excel.Range range = sheet.get_Range(sheet.Cells[1, 1], sheet.Cells[9, 9]);

Но в результате изменения метода get_Range он теперь принимает 2 объекта а не их значения. Таким образом нам необходимо их создать, для этого мы можем сделать следующее:

   Excel.Range r1 = sheet.Cells[1, 1];
   Excel.Range r2 = sheet.Cells[9, 9];

   //Захватываем диапазон ячеек
   Excel.Range range1 = sheet.get_Range(r1,r2 );

Теперь мы передаем в метод get_Range объекты Range и ошибки уже не увидим.

Однако есть еще один вариант обойти подобную ошибку, ввести напрямую имена ячеек, следующим образом:

 Excel.Range range1 = sheet.get_Range("A1","H9" );

Здесь мы просто не явно создаем объект типа String указывая имена ячеек.

Теперь вы то же знаете как избежать эту ошибку, удачи!

Обновлено: 20.10.2021 — 10:06

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.