
08.09.2009, 00:33
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
Да, вариант выше работал только на маленьком кол-ве записей. Или хз. В общем не стал дожидаться и переписал на более наглядный, невиснущий, позволяющий отследить результаты работы макрос:
PHP код:
Sub Макрос1()
Const intDataCol1 = 1 ' Номер столбца с кодами
Const intDataCol2 = 3 ' Номер столбца с ценами
Const intMaxRow = 12700 ' Номер последней строки в таблице
Dim i%, j%
Dim strValue1$, strValue2$, strValue3$, strValue4$
For i = 2 To intMaxRow - 1
strValue1 = Trim(Cells(i, intDataCol1))
strValue3 = Trim(Cells(i, intDataCol2))
For j = i + 1 To intMaxRow
strValue2 = Trim(Cells(j, intDataCol1))
strValue4 = Trim(Cells(j, intDataCol2))
If StrComp(strValue1, strValue2, vbTextCompare) = 0 Then
If strValue3 > strValue4 Then
Rows(j & ":" & j).Select
Selection.Delete Shift:=xlUp
Else
Rows(i & ":" & i).Select
Selection.Delete Shift:=xlUp
End If
End If
Next
Next
End Sub
ну и рабочий вариант можно скачать здесь вместе с файлом:
типо тут
Просто зайти в Сервис->Макрос->Макросы->Макрос1->Выполнить
PS: Ждать придется долго, на то оно и vba
Если что, пищи
------------------
Во время работы макроса лучше ничего не трогать, а тупо наслаждаться результатом
Последний раз редактировалось Pashkela; 08.09.2009 в 01:15..
|
|
|