C# 行数。如果RemoveDuplicates不';我找不到重复的

C# 行数。如果RemoveDuplicates不';我找不到重复的,c#,excel,duplicate-removal,C#,Excel,Duplicate Removal,在我正在处理的报告中,SQL将数据转储到新的excel工作表后,我必须按事务编号列AE(31)列检查重复记录 下面是代码的一部分,它对所使用的行进行计数,定义范围,删除重复项,并在重新计数后为下一个函数定义新的范围 //Removed duplicate transactions int trnsCount = JobDataSheet.Rows.Count; trnsCount = JobDataSheet.Cells[trnsCount, 1].End(Excel.XlDirection.x

在我正在处理的报告中,SQL将数据转储到新的excel工作表后,我必须按事务编号列AE(31)列检查重复记录

下面是代码的一部分,它对所使用的行进行计数,定义范围,删除重复项,并在重新计数后为下一个函数定义新的范围

//Removed duplicate transactions
int trnsCount = JobDataSheet.Rows.Count;
trnsCount = JobDataSheet.Cells[trnsCount, 1].End(Excel.XlDirection.xlUp).Row;
Excel.Range transRng = JobDataSheet.get_Range("A1:AE" + trnsCount);
transRng.RemoveDuplicates(31);

//Check if report has been run for 1 or multiple Jobs
int MyCount = JobDataSheet.Rows.Count;
MyCount = JobDataSheet.Cells[trnsCount, 1].End(Excel.XlDirection.xlUp).Row;
这就是事情变得奇怪的地方

如果RemovedUpplicate函数未找到任何重复项,则MyCount变量无法找到使用的最后一行

案例一点: 报告10701共有1415行(其中82行是重复的)。移除的重复行将其删除,留下1333行。对于此报表,TrnCount when watched正确计算1415行,MyCount在删除重复项后正确计算1333行

报表14506共有12行(0个重复),因此RemoveDuplicate不会从此报表中删除任何行。对于此报表,TrnCount在监视时正确计算12行,但MyCount仅计算1行


有什么想法吗?

注意你的变量
trnsCount

// trnsCount = Rows.Count
int trnsCount = JobDataSheet.Rows.Count;
// trnsCount = 12
trnsCount = JobDataSheet.Cells[trnsCount, 1].End(Excel.XlDirection.xlUp).Row;
然后,在删除重复项后,使用
trnsCount
(等于
12
)获取最后一行:

MyCount = JobDataSheet.Cells[trnsCount, 1].End(Excel.XlDirection.xlUp).Row;
显然这是不正确的,因为您应该使用
行。Count
而不是
12

所以,只需将上面的行更改为:

MyCount = JobDataSheet.Cells[MyCount , 1].End(Excel.XlDirection.xlUp).Row;