J'essaie d'obtenir la dernière ligne avec des données d'une colonne spécifique et je reçois l'erreur suivante lors de l'exécution de mon code:C# Interop obtenir la dernière rangée avec des données à partir d'une colonne spécifique
Impossible de obtenir la propriété COUNTA de la classe WorksheetFunction
var xlApp = new Microsoft.Office.Interop.Excel.Application();
var wb = (Excel.Workbook)Globals.ThisAddIn.Application.ActiveWorkbook;
var wsConfig = wb.Sheets["Config"];
var usedRows = xlApp.WorksheetFunction.CountA(wsConfig.Columns[9]);
a également essayé le code suivant, mais revient:
Exception de HRESULT: 0x800A03EC
var usedRows = wsConfig.Range["I1", wsConfig.Cells[1, wsConfig.Rows.Count]].End(Excel.XlDirection.xlDown).Value;
Exemple:
Colonne I
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| |
=>usedRows = 5
car il y a 5 lignes avec des données sur la colonne I
Le message d'erreur signifie simplement que vous avez passé les 'CountA' fonctionnent un argument incorrect. Je crois qu'il attend un 'Excel.Range' valide. Si c'est la neuvième colonne, je pense que ce devrait être 'wsConfig.Columns (" I: I ")' que vous passez à 'CountA' mais je suppose que je n'ai pas de projet à portée de main. – Equalsk
Oh, je pense que si vous regardez ici la réponse acceptée pourrait être ce que vous voulez: http://stackoverflow.com/questions/5411355/how-do-i-get-an-entire-column-in-used-range – Equalsk
J'ai essayé ça mais ça renvoie 51 (nombre total de lignes). – Valip