2010-09-28 8 views
6

Je ne l'ai jamais utilisé VSTO et je trouve qu'il est difficile de trouver un bon outil d'apprentissage pour 2010.Comment afficher une feuille de calcul par nom en utilisant VSTO 2010 pour Excel

Mon besoin est simple, j'ai un classeur d'affaires avec 42 feuilles de travail (j'ai supposé 20 mais après avoir compté trouvé un nombre surprenant). Je veux ajouter un ruban (cette partie est facile) en utilisant VSTO pour permettre aux employés de naviguer facilement sur le grand nombre de pages. Je n'arrive pas à trouver le code C# pour afficher une feuille de calcul spécifique (de préférence par nom) que je peux simplement ajouter à l'événement click des boutons.

Merci

Répondre

10

Appelez la méthode Activate sur l'objet de feuille de calcul (de type Microsoft.Office.Tools.Excel.Worksheet).

Vous pouvez le faire par le nom de votre classe ThisWorkbook ou via Globals.ThisWorkbook comme suit:

private Excel.Worksheet GetWorksheetByName(string name) 
{ 
    foreach (Excel.Worksheet worksheet in this.Worksheets) 
    { 
    if (worksheet.Name == name) 
    { 
     return worksheet; 
    } 
    } 
    throw new ArgumentException(); 
} 

private void ActivateWorksheetByName(string name) 
{ 
    GetWorksheetByName(name).Activate(); 
} 

Appelez le ActivateWorksheetByName et de transmettre le nom de la feuille de calcul à afficher.

+0

Comment accéder à l'instance ThisWorkBook à partir de la classe du ruban? Je ne peux pas avoir l'air accroché et je ne veux évidemment pas en créer un autre. –

+2

Vous pouvez y accéder via la classe 'Globals' sous le nom de' Globals.ThisWorkbook'. –

+0

Merci Richard, je vais essayer ça dès que je serai au bureau. J'ai désespérément besoin de trouver un bon livre VSTO 2010. Il semble que 99% de ce que je trouve sur le web est dépassé et je ne sais pas assez pour savoir lequel serait utile. –

Questions connexes