2009-11-19 5 views
2

J'essaie de lire l'ActiveCell à partir d'un complément Excel, mais ne pas aller très loin. Quelqu'un a des idées?Lire le contenu ActiveCell dans Excel en utilisant VSTO

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

L'exception étant jeté sur la dernière ligne est: -

ne peut pas obtenir des champs ou des méthodes d'appel sur l'instance de type 'Microsoft.Office.Interop.Excel.Range' parce que c'est un proxy à un objet distant .

J'ai essayé .Value, et il dit: -

Propriété, indexeur ou événement 'Value' est pas pris en charge par la langue; essayez directement appeler des méthodes accesseurs 'Microsoft.Office.Interop.Excel.Range.get_Value (objet)' ou 'Microsoft.Office.Interop.Excel.Range.set_Value (objet, objet )'

En essayant get_Value() j'obtiens à nouveau l'Exception initiale.

ne peut pas obtenir des champs ou des méthodes d'appel sur l'instance de type « Microsoft.Office.Interop.Excel.Range » parce qu'il est un proxy pour un objet à distance.

Des idées?

Cheers,

Phil.

Répondre

5

R.Text.ToString(); vous obtiendrez le texte de la cellule

1

N'utilisez pas Activewindow. modifié votre code comme suit Excel.Range R = this.Application.ActiveCell comme Excel.Range; si (R! = Nul) MessageBox.Show (R.Value2);

Remarque: ActiveCell peut être nul si l'utilisateur n'a pas choisi de cellule dans la feuille active.

+0

Bon point sur la vérification nulle. – NoChance

Questions connexes