Excel 2010 VBA Как отобразить даты выполнения в списке?

Во -первых, спасибо за вашу помощь.

Я пытаюсь отобразить даты выполнения в списке в форме пользователя. Я планирую добавить отдельные кнопки CommanButtons для каждого месяца. Когда я нажимаю, скажем, в январе, я хочу увидеть сроки в январе этого года. У меня есть лист "База данных", и несколько столбцов содержат даты в зависимости от прогресса. Это может усложнить задачу, но я хочу вызвать строки со сроками для января и отобразить в списке. Если я нажму "Декабрь", он обновится и покажет только строки, для которых крайний срок - декабрь.

Пожалуйста, дайте мне знать, если мне не ясно.

Заранее спасибо.

2 ответа

Я бы порекомендовал вам использовать именованные диапазоны для этого упражнения. Выберите столбец со всеми датами погашения за январь и назовите диапазон "январь". Тогда вы можете использовать следующее

Private Sub JanBtn_Click()
    DueDateLB.RowSource = "Database!Jan"
End Sub

Спасибо за ваше сообщение.

До сих пор я придумал это:


Частный Sub cmdJan_Click ()

Dim FindString As Date
Dim Rng As Range
FindString = DateSerial(2015, 1, 17)
With Sheets("Database").Range("N:N")
    Set Rng = .Find(What:=FindString, _
                    After:=.Cells(.Cells.Count), _
                    LookIn:=xlFormulas, _
                    LookAt:=xlWhole, _
                    SearchOrder:=xlByRows, _
                    SearchDirection:=xlNext, _
                    MatchCase:=False)
    If Not Rng Is Nothing Then
        Me.ListBox2.RowSource = Rng.EntireRow.Address
    Else
        MsgBox "Nothing found"
    End If
End With

End Sub


  1. Я хочу изменить "DateSerial(2015, 1, 17)" на что-то вроде "XXXX(текущий год, первый месяц, любой день).
  2. Код выше работает только тогда, когда активен лист "База данных". Он должен работать, когда он также неактивен. "База данных" не будет скрыта, но будет виден только первый лист.

Любые комментарии?

Другие вопросы по тегам