Задача в следующем: Есть таблица. Нужно: 1) Разъединить текст от цифр в колонках X:AA, чтобы сравнить показатели цифр. 2) Удалять полностью всю строчку при условии, если значение StopLoss меньше значений TR_TrailingStart или BE_Start Строчки, которые нужно удалить, где совпало условие, выделил светло-зеленым. Темно-зеленым выделил значения, которые больше StopLoss.
Спасибо
Задача в следующем: Есть таблица. Нужно: 1) Разъединить текст от цифр в колонках X:AA, чтобы сравнить показатели цифр. 2) Удалять полностью всю строчку при условии, если значение StopLoss меньше значений TR_TrailingStart или BE_Start Строчки, которые нужно удалить, где совпало условие, выделил светло-зеленым. Темно-зеленым выделил значения, которые больше StopLoss.
Да, отлично работает. Только диапазон текстовых значений постоянно меняется, с колонок не 3, а неизвестное заранее количество. Не смог сообразить, как выбирать последнюю заполненную колонку. И если между данными есть пустые ячейки, он выдает ошибку, хотелось бы просматривать все значения в книге начиная с 3 строчке
Да, отлично работает. Только диапазон текстовых значений постоянно меняется, с колонок не 3, а неизвестное заранее количество. Не смог сообразить, как выбирать последнюю заполненную колонку. И если между данными есть пустые ячейки, он выдает ошибку, хотелось бы просматривать все значения в книге начиная с 3 строчкеrever27
Еще вопрос к Вам, возможно, немного не по теме про счетчик удаленных значений. Есть код, он удаляет дубликаты в заданных строчках, и потом удаляет пустые ячейки после удаления. Как можно так же посчитать, сколько дубликатов было удалено? [vba]
Код
Sub b_RemoveDuplicates()
Dim r As Long, rng As Range, rng1 As Range
Set rng1 = Range(ActiveCell, Selection.End(xlDown).EntireRow)
rng1.RemoveDuplicates Columns:=Array(17, 18, 24, 25), Header:=xlNo 'Q, R, X, Y rng1.RemoveDuplicates Columns:=Array(18, 21, 24, 25), Header:=xlNo 'R, U, X, Y rng1.RemoveDuplicates Columns:=Array(18, 21, 25, 29, 33), Header:=xlNo 'R, U, Y, AC, AG rng1.RemoveDuplicates Columns:=Array(18, 21, 25, 27, 28, 36), Header:=xlNo 'R, U, Y, AA, AB, AJ
For r = 1 To ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count If Application.CountA(Rows(r)) = 0 Then If rng Is Nothing Then Set rng = Rows(r) Else Set rng = Union(rng, Rows(r)) End If Next r If Not rng Is Nothing Then rng.Delete: _
End Sub
[/vba]
Еще вопрос к Вам, возможно, немного не по теме про счетчик удаленных значений. Есть код, он удаляет дубликаты в заданных строчках, и потом удаляет пустые ячейки после удаления. Как можно так же посчитать, сколько дубликатов было удалено? [vba]
Код
Sub b_RemoveDuplicates()
Dim r As Long, rng As Range, rng1 As Range
Set rng1 = Range(ActiveCell, Selection.End(xlDown).EntireRow)
rng1.RemoveDuplicates Columns:=Array(17, 18, 24, 25), Header:=xlNo 'Q, R, X, Y rng1.RemoveDuplicates Columns:=Array(18, 21, 24, 25), Header:=xlNo 'R, U, X, Y rng1.RemoveDuplicates Columns:=Array(18, 21, 25, 29, 33), Header:=xlNo 'R, U, Y, AC, AG rng1.RemoveDuplicates Columns:=Array(18, 21, 25, 27, 28, 36), Header:=xlNo 'R, U, Y, AA, AB, AJ
For r = 1 To ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count If Application.CountA(Rows(r)) = 0 Then If rng Is Nothing Then Set rng = Rows(r) Else Set rng = Union(rng, Rows(r)) End If Next r If Not rng Is Nothing Then rng.Delete: _
Это новый вопрос - для него нужна новая тема, иначе Александр нам влепит по замечанию! (он за этим строго следит )
А вообще, нужно знать, что именно вы подразумеваете под дубликатами? Что нужно подсчитывать, кол-во удаленных ячеек? Вам нужно знать общее кол-во ячеек, удаленных макросом, или по отдельности для каждой команды RemoveDuplicates и отдельно сколько удалено пустых ячеек?
Это новый вопрос - для него нужна новая тема, иначе Александр нам влепит по замечанию! (он за этим строго следит )
А вообще, нужно знать, что именно вы подразумеваете под дубликатами? Что нужно подсчитывать, кол-во удаленных ячеек? Вам нужно знать общее кол-во ячеек, удаленных макросом, или по отдельности для каждой команды RemoveDuplicates и отдельно сколько удалено пустых ячеек?KSV
KSV. Подскажите, пожалуйста. Добавились небольшие изменения в расчет. Помимо параметров TR_TrailingStart или BE_Start теперь также нужно учитывать сумму вот этих двух: PartClose_Targets_1|PartClose_Targets_2
Т.е. нужно дополнительное сравнение: StopLoss <= PartClose_Targets_1 + PartClose_Targets_2 если да, то так же удаление строки.
Спасибо
KSV. Подскажите, пожалуйста. Добавились небольшие изменения в расчет. Помимо параметров TR_TrailingStart или BE_Start теперь также нужно учитывать сумму вот этих двух: PartClose_Targets_1|PartClose_Targets_2
Т.е. нужно дополнительное сравнение: StopLoss <= PartClose_Targets_1 + PartClose_Targets_2 если да, то так же удаление строки.
Добрый день! Если PartClose_Targets_1 и PartClose_Targets_2 тоже имеют целочисленные значения, то так (см. вложенный файл). А если дробные, то нужно изменить тип переменной p на p! или p# (вместо p&).
Добрый день! Если PartClose_Targets_1 и PartClose_Targets_2 тоже имеют целочисленные значения, то так (см. вложенный файл). А если дробные, то нужно изменить тип переменной p на p! или p# (вместо p&).KSV