Страницы: 1
RSS
Замена горизонтального однострочного диапазона на аналогичный по сравнению двух ячеек из этих диапазонов
 
Добрый день,
подскажите пожалуйста, как реализовать макрос на основе сравнения значения двух ячеек (пример таблицы во вложении) с заменой диапазона
=если(текст 10) < (текст 5); то заменить в строке значение ячеек от (Текст 6) до (Текст 10) на диапазон с (Текст 1) до (Текст 5); если => то ничего

Таблица может иметь бесконечное количество строк, важно сравнить каждое значение, и заменить диапазон от (1-5) на (6-10) при соблюдении условия.
Пример таблицы во вложении
 
классный приме (нет), у Вас же есть ексель - так сделайте в нем исходные данные и рядом или на другом листе покажите желаемый результат.
Не бойтесь совершенства. Вам его не достичь.
 
Выделите A3:J9.
Код
Option Explicit

Const X1 = 5
Const X2 = 10

Sub SelectionNicerDicer()
    NicerDicer Selection
End Sub

Sub NicerDicer(rIn As Range)
    Dim arr As Variant
    Dim brr As Variant
    arr = rIn
    If UBound(arr, 2) < X1 Then Exit Sub
    If UBound(arr, 2) < X2 Then Exit Sub
    brr = arr
    
    Dim y As Long
    Dim x As Integer
    For y = 1 To UBound(arr, 1)
        If arr(y, X1) > arr(y, X2) Then
            For x = 1 To X1
                arr(y, X1 + x) = brr(y, x)
                arr(y, x) = brr(y, X1 + x)
            Next
        End If
    Next
    rIn = arr
End Sub
Страницы: 1
Наверх