2009-11-19 4 views
2

Я пытаюсь прочитать ActiveCell из надстройки Excel, но не очень далеко. Какие-нибудь идеи?Прочитайте содержимое ActiveCell в Excel с помощью VSTO

Excel.Window W = this.Application.ActiveWindow as Excel.Window; 
Excel.Range R = W.ActiveCell as Excel.Range; 
MessageBox.Show(R.Value2.ToString()); 

Исключения бросает на последнюю строку: -

Не может получить поле или методы вызова на экземпляре типа «Microsoft.Office.Interop.Excel.Range» потому что это прокси удаленному объекту .

Я попытался .Value, и он говорит: -

недвижимости, индексатор или событие 'Value' является не поддерживается языком; попробуйте непосредственно вызывая методы аксессоры 'Microsoft.Office.Interop.Excel.Range.get_Value (объект)' или 'Microsoft.Office.Interop.Excel.Range.set_Value (объект, объект)'

При попытке get_Value() я снова получаю начальное исключение.

Не удается получить поля или методы вызова на экземпляре типа «Microsoft.Office.Interop.Excel.Range» потому, что это прокси на удаленный объект .

Любые идеи?

Cheers,

Phil.

ответ

1

Не используйте Activewindow. изменил ваш код следующим образом: Excel.Range R = this.Application.ActiveCell как Excel.Range; if (R! = Null) MessageBox.Show (R.Value2);

Примечание: ActiveCell может быть пустым, если пользователь не выбрал ячейку активного листа.

+0

Хорошая точка около null проверка. – NoChance

Смежные вопросы