Добрый день! Подскажите пожалуйста как сравнить ячейку А с В, и если В больше А то поменять местами? Т.е. чтобы значения в А были всегда больше В
Добрый день! Подскажите пожалуйста как сравнить ячейку А с В, и если В больше А то поменять местами? Т.е. чтобы значения в А были всегда больше Вmaksimbystrov
приходят размеры, необходимо отфильтровать так, чтобы больший размер всегда был в первом столбце. В примере так чтобы 1500 всегда было в столбце А. Т.е. сравнить их и в случае если значение в столбце А меньше чем в В то поменять местами.
приходят размеры, необходимо отфильтровать так, чтобы больший размер всегда был в первом столбце. В примере так чтобы 1500 всегда было в столбце А. Т.е. сравнить их и в случае если значение в столбце А меньше чем в В то поменять местами.maksimbystrov
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Range("A1:B99"), Target) Is Nothing Then Dim per As Double Application.EnableEvents = False If Range("B" & Target.Row) > Range("A" & Target.Row) Then per = Range("A" & Target.Row) Range("A" & Target.Row) = Range("B" & Target.Row) Range("B" & Target.Row) = per End If Application.EnableEvents = True End If End Sub
[/vba] Код в модуле листа Если числа целые, то вместо Double поставьте Long
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Range("A1:B99"), Target) Is Nothing Then Dim per As Double Application.EnableEvents = False If Range("B" & Target.Row) > Range("A" & Target.Row) Then per = Range("A" & Target.Row) Range("A" & Target.Row) = Range("B" & Target.Row) Range("B" & Target.Row) = per End If Application.EnableEvents = True End If End Sub
[/vba] Код в модуле листа Если числа целые, то вместо Double поставьте LongAlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Сообщение отредактировал AlexM - Среда, 22.07.2015, 13:19
Sub Macros() Dim Arr, per As Long Arr = Range([A1], Range("B" & Rows.Count).End(xlUp)) For i = 1 To UBound(Arr) If Arr(i, 2) > Arr(i, 1) Then per = Arr(i, 1) Arr(i, 1) = Arr(i, 2) Arr(i, 2) = per End If Next i Range("A1").Resize(UBound(Arr), 2) = Arr End Sub
[/vba] Код в Модуле1
Макрос обработки столбцов разом[vba]
Код
Sub Macros() Dim Arr, per As Long Arr = Range([A1], Range("B" & Rows.Count).End(xlUp)) For i = 1 To UBound(Arr) If Arr(i, 2) > Arr(i, 1) Then per = Arr(i, 1) Arr(i, 1) = Arr(i, 2) Arr(i, 2) = per End If Next i Range("A1").Resize(UBound(Arr), 2) = Arr End Sub