我尝试使用特定列中的数据获取最后一行,并且在运行代码时出现以下错误:
无法获取WorksheetFunction类的CountA属性
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]);
还尝试了以下代码,但返回:
HRESULT的异常:0x800A03EC
var usedRows = wsConfig.Range["I1", wsConfig.Cells[1, wsConfig.Rows.Count]].End(Excel.XlDirection.xlDown).Value;
示例:
第I栏
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| |
=> usedRows = 5
因为列I上有5行数据
答案 0 :(得分:1)
获取列中最后一行(例如A
)的经典excel-vba方法是:
last = Sheets("Sheet1").Range("A" & Sheets("Sheet1").Rows.Count).End(xlUp).Row
哪个'工作表中的最后一个可用行(从版本到版本的更改)一直向上,直到您点击一个带有值的单元格 - 最后一行。
您可以在示例中使用c#(对于专栏I
)写下此内容:
var usedRows = wsConfig.Range["I" + wsConfig.Rows.Count.ToString()].End(Excel.XlDirection.xlUp).Row;
答案 1 :(得分:0)
我知道这已经有几岁了,但只是以为我会把它放在这里。可接受的答案可能需要对C#元素进行一些调整,因为它对我而言并不奏效。因此,我将其修改为以下内容:
var usedRows = wsConfig.Range["I" + wsconfig.Rows.Count.ToString()].End[Excel.XlDirection.xlUp]