Как я могу разрешить неоднозначность в этой Microsoft. Office. Вызов метода Excel?

Я использую офис 2007 функция рабочего листа Excel в коде c#. VS2010 выдает это предупреждение

Предупреждение 3 Неоднозначностей между методом 'Microsoft. Office. Interop. Excel. _ Рабочий лист. Активируйтесь ()' и неметод 'Microsoft. Office. Interop. Excel. DocEvents_Event. Активируйтесь'. Используя группу метода. D:\EXLANEDB01p\dev\libraries\EXCEL\Excel.cs 531 95 EXCEL

Как я разрешаю это? вызов

xSheet.Activate(); 

где xSheet переданный как касательно в вызове как

ref Microsoft.Office.Interop.Excel.Worksheet xSheet
17
задан Jeff Mercado 11 January 2011 в 11:21
поделиться

1 ответ

Вам необходимо устранить неоднозначность имени Активировать . В интерфейсе рабочего листа Activate является либо методом (если рассматривается как объект _Worksheet ), либо событием (если рассматривается как объект DocEvents_Event ).

Сначала преобразуйте свой объект в Microsoft.Office.Interop.Excel._Worksheet , затем вызовите Activate () .

((Microsoft.Office.Interop.Excel._Worksheet)xSheet).Activate();

Или объявите новую переменную _Worksheet и используйте ее в своем методе.

_Worksheet sheet = xSheet;
sheet.Activate();

В противном случае вы можете изменить объявление метода, взяв ссылку на _Worksheet вместо Worksheet , а также на все связанные объявления.

void MyMethod(ref Microsoft.Office.Interop.Excel._Worksheet xSheet)
{
    // ...
}

// usage:
_Worksheet sheet = new Worksheet();
MyMethod(ref sheet);
31
ответ дан 30 November 2019 в 12:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: