Я пытаюсь написать код, содержащий следующую строку:
WorksheetFunction.SumProduct((Columns(3) = ActiveCell.Value) + 0)
Код всегда возвращает ошибку несоответствия типа!
Я использую эту строку кода, чтобы избежать использования функции Countif со строкой длиной более 255.
заранее спасибо
Это исходный код:
Dim MyColumn As Long, r As Long, lngLastRow As Long
MyColumn = ActiveCell.Column
With Sheets("Project Breakdown")
lngLastRow = .Cells(.Rows.Count, MyColumn).End(xlUp).Row
For r = lngLastRow To 1 Step -1
If InStr(1, Cells(r, MyColumn - 2), "DIV", vbTextCompare) = 0 And InStr(1, Cells(r, MyColumn - 2), "SEC", vbTextCompare) = 0 Then
If WorksheetFunction.CountIf(.Columns(MyColumn), .Cells(r, MyColumn).Value) > 1 Then
.Cells(r, MyColumn).Delete Shift:=xlUp
End If
End If
Next r
End With
countif возвращает ошибку, поскольку длина строки превышает 255, поэтому я попытался вместо этого использовать функцию sumproduct, но не смог заставить ее работать.
AutoFilter
, чтобы скрыть все строки с DIV или SEC в столбце A, а затем просто использоватьRemoveDuplicates
из столбца C (используйтеSpecialCells(xlCellTypeVisible)
, чтобы определить новый диапазон отфильтрованных строк) - person Shai Rado   schedule 08.01.2017