C# Interop 使用特定列的数据获取最后一行

标签 c# excel interop

我试图从特定列获取最后一行的数据,但在运行我的代码时出现以下错误:

Unable to get the CountA property of the WorksheetFunction class

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]);

也尝试了下面的代码,但是返回:

Exception from HRESULT: 0x800A03EC

var usedRows = wsConfig.Range["I1", wsConfig.Cells[1, wsConfig.Rows.Count]].End(Excel.XlDirection.xlDown).Value;

例子:

第一栏
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| |

=> usedRows = 5 因为第 I 列有 5 行数据

最佳答案

经典获取列中最后使用的行(例如 A)的方法是:

last = Sheets("Sheet1").Range("A" & Sheets("Sheet1").Rows.Count).End(xlUp).Row

上面写着“从工作表中最后可用的行开始工作(从一个版本到另一个版本)向上工作,直到您点击一个具有值的单元格 - 您的最后一行。”

你可以在中写这个在您的示例中(对于 I 列):

var usedRows = wsConfig.Range["I" + wsConfig.Rows.Count.ToString()].End(Excel.XlDirection.xlUp).Row;

关于C# Interop 使用特定列的数据获取最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42696313/

相关文章:

excel - 打开 CSV 文件而不将文本转换为公式

c# - 为什么 excel 保持打开状态?

c# - 如何从本地计算机生成 bacpac 文件并将其上传到 Azure blob 上?

c# - 如何通过 Visual Studio 创建和运行 NUnit/WebDriver 测试套件?

vba - Excel VBA - 需要删除B列中填充引用错误的单元格值的行

c# - 为什么没有调用 IExpando.AddMethod?

C#:编码包含数组的结构

c# - 如何在运行时设计报告 SSRS

c# - 扑克 watch 示和评估

excel - Application.Calculate 和 Application.CalculateFull 之间有什么区别?