J'utilise C# Interop pour obtenir les valeurs à partir d'une feuille de calcul Excel en fonction d'un paramètre passé à une fonction et je reçois l'erreur suivante:C# Interop le nom n'existe pas dans le contexte actuel
the name 'sheet' does not exist in the current context
Ceci est mon code:
public void getIndexes(int num)
{
var wb = (Excel.Workbook)Globals.ThisAddIn.Application.ActiveWorkbook;
var wsEvars = wb.Sheets["Evars"];
var wsEvents = wb.Sheets["Events"];
if (num == 0)
{
var sheet = wsEvars;
}
if (num == 2)
{
var sheet = wsEvents;
}
if (num != 2)
{
var rng = (Excel.Range)sheet.Range[sheet.Cells[3, 2], sheet.Cells[3, 25]];
}
}
Je suppose que la variable sheet
doit être initialisé avant la première instruction if
... mais qui devrait être le type de cette variable car il est un objet COM?
Il est juste un dans les deux cas 'Excel.Worksheet'. Donc 'Excel.Worksheet sheet = null;' avant le premier 'if' comme vous l'avez dit. – Equalsk
Que faire si quelqu'un passe une valeur 'int' qui n'est pas' 0' ou '2'? On dirait que vous pourriez vouloir un 'enum' à la place. – Equalsk
Les valeurs sont passées d'une autre fonction, et ils peuvent être seulement 0 et 2 – Valip