2015-02-17 5 views
-1

сначала спасибо за вашу помощь.Excel 2010 VBA Как отображать даты в списке?

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

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

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

ответ

0

Я бы порекомендовал вам использовать именованные диапазоны для этого упражнения. Выберите столбец со всеми назначенными датами для января и назовите диапазон «Ян». Затем вы можете использовать следующее:

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

Благодарим вас за сообщение.

До сих пор я пришел с этим:


Private 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. Приведенный выше код работает только при активном листе «База данных». Он должен работать, когда он неактивен. «База данных» не будет скрыта, но будет отображаться только первый лист.

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