Страницы: 1
RSS
Перенос строк с листа на лист по условию
 
Доброго всем времени суток!
Очень прошу, помогите с проблемой.
В книге два основных листа: "report" и "data".
Нужно чтобы строки отфильтрованные по условию в комбобоксе (фильтр по значению "проект") вставлялись в лист report с листа data.
По кнопке или сразу, не принципиально.

Выручайте!
 
suigres, привет
попробуйте так (в модуль листа "report")
Код
Private Sub ComboBox1_Change()
Dim x, y(), i&, s$, k&
If Me.ComboBox1.ListIndex = -1 Then Exit Sub

x = Sheets("data").Range("A1").CurrentRegion.Value
ReDim y(1 To UBound(x), 1 To 3)
s = Me.ComboBox1.Value

For i = 2 To UBound(x)
    If x(i, 4) = s Then
        k = k + 1
        y(k, 1) = x(i, 1)    'HouseID
        y(k, 2) = x(i, 2)    'Адрес
        y(k, 3) = x(i, 3)    'Клиентов
    End If
Next i

With Range("A2").CurrentRegion.Offset(2)
    .ClearContents
    If k > 0 Then .Resize(k).Value = y()
End With
End Sub
 
Огромное спасибо!!!
 
Пожалста :)
 
Не подумал во вложенном примере, что это может быть важно.
В полученном варианте столбцы D и далее заполняются "#Н/Д", а мне они нужны для расчетов :-(
 
Тогда диапазон нужно ограничить тремя столбцами
см. файл
 
=ЕСЛИОШИБКА(ИНДЕКС(data!A$2:A$19;НАИМЕНЬШИЙ(data!$E$2:$E$19;СТРОКА()-2)-1);"")
 
Alexanderr, спасибо. Массивом пробовал. Тормозит жутко. Плюс не удобно вставлять дополнительный столбец в лист "data".

Цитата
nilem написал: см. файл
Вообще отлично теперь! Спасибо за поддержку!
Еще одна мелкая проблема. На моих реальных данных, при смене проекта с большим количеством выводимых в отчет строк (100-2000), на проект с 5-10 строками, остаются строки от старого проекта. Возможно ли перенести очистку в начало обработки и наверняка удалять все что там есть лишнего? Но только в первых трех столбцах, в остальных формулы.
Изменено: suigres - 07.10.2017 10:10:52
 
Очистка происходит вот здесь:
Код
With Range("A2").CurrentRegion.Resize(, 3).Offset(2)
    .ClearContents' очищаем диапазон перед вставкой данных
    If k > 0 Then .Resize(k).Value = y()
End With
Если данные расположены так, как в примере (первые 2 строки - заголовки, данные начинаются с 3-й строки), то должно работать.
 
nilem, спасибо большое! Очень выручили! Принцип работы понял. Немного переделал под реальную задачу, все работает. Не знаю что было с очисткой, но сейчас проблем нет.  
Страницы: 1
Наверх