Показать сообщение отдельно

  #4  
Старый 08.09.2009, 00:33
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

Да, вариант выше работал только на маленьком кол-ве записей. Или хз. В общем не стал дожидаться и переписал на более наглядный, невиснущий, позволяющий отследить результаты работы макрос:

PHP код:
Sub Макрос1()

Const 
intDataCol1 ' Номер столбца с кодами
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..
 
Ответить с цитированием