Добрый день! Подскажите пожалуйста, имеется файл спецификации в котором столбец Обозначение, и второй столбец Обозначение по счету. Необходимо сравнивать между собой наименований вводимых строк (в идеале должны быть одинаковы), в случае различий подсветка символов или всего наименования
Добрый день! Подскажите пожалуйста, имеется файл спецификации в котором столбец Обозначение, и второй столбец Обозначение по счету. Необходимо сравнивать между собой наименований вводимых строк (в идеале должны быть одинаковы), в случае различий подсветка символов или всего наименованияgreenХХ
Sub u_700() Application.ScreenUpdating = False u_1 = Cells(Rows.Count, "b").End(xlUp).Row For Each u In Range("b2:b" & u_1) u_2 = Len(u) u_3 = Len(u.Offset(0, -1)) u_4 = u_2 - u_3 u.Characters(Start:=u_3 + 1, Length:=u_4).Font.Color = -16776961 Next Application.ScreenUpdating = True End Sub
[/vba]
YouGreed, что типа: [vba]
Код
Sub u_700() Application.ScreenUpdating = False u_1 = Cells(Rows.Count, "b").End(xlUp).Row For Each u In Range("b2:b" & u_1) u_2 = Len(u) u_3 = Len(u.Offset(0, -1)) u_4 = u_2 - u_3 u.Characters(Start:=u_3 + 1, Length:=u_4).Font.Color = -16776961 Next Application.ScreenUpdating = True End Sub
greenХХ, на самом деле это не более изящное решение, т.к. цикл будет перебирать 1 000 000 Ваших строк дольше чем условное форматирование (C++(наверное) круче VBA(может быть))
greenХХ, на самом деле это не более изящное решение, т.к. цикл будет перебирать 1 000 000 Ваших строк дольше чем условное форматирование (C++(наверное) круче VBA(может быть))Nic70y
Nic70y, у меня далеко не 1000 000 строк, а вот файлов отдельных, со строками 10-100 много, для этого и хочу проверку эту выполнять - автоматически по нажатию на кнопку - поэтому VBA В части С++ я с ним вообще не знаком если направите меня в нужном направлении или примерчик какой....постараюсь разобраться.
Nic70y, у меня далеко не 1000 000 строк, а вот файлов отдельных, со строками 10-100 много, для этого и хочу проверку эту выполнять - автоматически по нажатию на кнопку - поэтому VBA В части С++ я с ним вообще не знаком если направите меня в нужном направлении или примерчик какой....постараюсь разобраться.greenХХ
greenХХ, на счет С++ я имел ввиду, что на нем скорее всего написаны стандартные средства Excel, я его сам не знаю. на счет макроса: Обозначение всегда пишется через минус (тире) или есть другие варианты?
greenХХ, на счет С++ я имел ввиду, что на нем скорее всего написаны стандартные средства Excel, я его сам не знаю. на счет макроса: Обозначение всегда пишется через минус (тире) или есть другие варианты?Nic70y
Nic70y, приложил: 1. В желтом блоке будет первичная информация вносится 2. В синем вторичная - обозначение по счетам 3. сравниваться должны Обозначение В2 с Обозначением из D2→ выделять в последнем отличия. В случае отсутствия отличия пропускать 4. по всем нижеидущим строчкам условие аналогичное
Nic70y, приложил: 1. В желтом блоке будет первичная информация вносится 2. В синем вторичная - обозначение по счетам 3. сравниваться должны Обозначение В2 с Обозначением из D2→ выделять в последнем отличия. В случае отсутствия отличия пропускать 4. по всем нижеидущим строчкам условие аналогичноеgreenХХ
Sub u_704() Application.ScreenUpdating = False u_1 = Cells(Rows.Count, "b").End(xlUp).Row For Each u In Range("b2:b" & u_1) If u <> u.Offset(0, 2) Then u_2 = Len(u) For i = 1 To u_2 u_3 = Mid(u, i, 1) u_4 = Mid(u.Offset(0, 2), i, 1) If u_3 <> u_4 Then u.Offset(0, 2).Characters(Start:=i, Length:=1).Font.Color = -16776961 End If Next i End If Next Application.ScreenUpdating = True End Sub
[/vba]
[vba]
Код
Sub u_704() Application.ScreenUpdating = False u_1 = Cells(Rows.Count, "b").End(xlUp).Row For Each u In Range("b2:b" & u_1) If u <> u.Offset(0, 2) Then u_2 = Len(u) For i = 1 To u_2 u_3 = Mid(u, i, 1) u_4 = Mid(u.Offset(0, 2), i, 1) If u_3 <> u_4 Then u.Offset(0, 2).Characters(Start:=i, Length:=1).Font.Color = -16776961 End If Next i End If Next Application.ScreenUpdating = True End Sub