wbsr
@wbsr
Программист - любитель

Как сделать фильтрацию таблицы в Excel на VB?

Имеется таблица в Excel вида

Текст | Текст | Текст | Дата начала | Дата конца|
Текст | Текст | Текст | Дата начала | Дата конца|
Текст | Текст | Текст | Дата начала | Дата конца|
Текст | Текст | Текст | Дата начала | Дата конца|

Также имеется отдельно от таблицы какая-то ячейка (например $A$1), в которой есть какая-то дата

Нужно чтобы при изменении контрольной ячейки с датой в таблице оставались только те строки в которых дата с контрольной ячейки входит во временной отрезок взятый из даты начала и даты конца.

Если же ячейка пустая то отображаться должны все строки.

Надеюсь объяснил понятно. Знаю что ответ легкий, сам макросы на VB никогда не писал, поэтому прошу посоветовать или помочь кусочком кода.
  • Вопрос задан
  • 215 просмотров
Решения вопроса 1
AnnTHony
@AnnTHony
Интроверт
Sub macros()
    Dim i, cell_start, cell_end As Integer
    Dim cell_x As Date
    
    i = 1
    cell_start = 4 ''' номер ячейки с начальной датой '''
    cell_end = 5   ''' номер ячейки с конечной датой '''
    cell_x = Cells(21, 4) ''' ячейка с контрольной датой '''
    
    While (Cells(i, cell_start) <> "")
        Rows(i).Select
        If (Cells(i, cell_start) <= cell_x) And (Cells(i, cell_end) >= cell_x) Then
            Selection.EntireRow.Hidden = False
        Else
            Selection.EntireRow.Hidden = True
        End If
        i = i + 1
    Wend
End Sub
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы