Object必需的VBA Strcomp函数

我们有一个导出到excel的SQL数据库。 数据库中的每条logging都是对项目的评估。 每个项目都有一个项目标识符(string)。 由于项目可以评估两次,每个项目可以有两个logging。 两个logging之间的区别是id号码(number),最近的logging具有较高的id号码。 logging被导出为在电子表格中作为一行的每个logging优于。 我想写一个比较两个项目标识符的子,并删除与较低的ID号的行。 我不断收到SameP的对象所需的错误。

Dim Pident1 As String Dim Pident2 As String Dim IdNumb1 As Variant Dim IdNumb2 As Variant Dim i As Integer Dim SameP As Integer i = 2 For i = 2 To 100 Pident1 = ActiveSheet.Cells(i, 2).Text Pident2 = ActiveSheet.Cells(i + 1, 2).Text IdNumb1 = ActiveSheet.Cells(i, 1).Value IdNumb2 = ActiveSheet.Cells(i + 1, 1).Value Set SameP = StrComp(Pident1, Pident2, CompareMethod.Text) If SameP = 0 And IdNumb1> Idnumb2 Then Data.Rows(i).EntireRow.Delete Next i End Sub 

任何帮助将不胜感激。 我不是程序员,我只是尽力而为。 提前致谢。

你需要改变这个

 SameP = StrComp(Pident1, Pident2, CompareMethod.Text) 

对此:

 SameP = StrComp(Pident1, Pident2) 

错误是这一行也

 Data.Rows(i).EntireRow.Delete 

改变这个

 Sheets("Name_of_sheet_here").Rows(i).EntireRow.Delete 

或者这也可以

 Activeworksheet.Rows(i).EntireRow.Delete 

改变这个:

 Set SameP = StrComp(Pident1, Pident2, CompareMethod.Text) If SameP = 0 And IdNumb1> Idnumb2 Then Data.Rows(i).EntireRow.Delete 

 SameP = StrComp(Pident1, Pident2, vbTextCompare ) If SameP = 0 And IdNumb1> Idnumb2 Then ActiveSheet.Rows(i).EntireRow.Delete