2016-03-21 92 views
0

我有這樣的樣品中的Excel數據如下圖所示,3個列表框有條件地將項目添加到Excel的ListBox控件

我的電子表格的

例子:

A   B   C 
1423 21-03-16 John 
2987 03-03-16 Steve 

我的問題:在我的ListBox2我想只能說明什麼是在A柱僅14天B列已通過天

我有這樣的代碼,但不能得到它的工作

 Dim rngToSearch As Range 
    Dim rngToFind As Range 
    Dim valToFind As Variant 
    Dim arrClearList() 

    valToFind = TextBox1.Value 
    With Worksheets("Data2") 
     Set rngToSearch = .Columns("A") 
    End With 
    Set rngToFind = rngToSearch.Find(What:=valToFind, _ 
      LookIn:=xlFormulas, _ 
      LookAt:=xlWhole, _ 
      SearchOrder:=xlByRows, _ 
      SearchDirection:=xlNext, _ 
      MatchCase:=False) 

    If Not rngToFind Is Nothing Then 

     Call ClearList(Me.ListBox1) 
    ListBox1.AddItem 

     With ListBox1 
      .List(.ListCount - 1, 0) = rngToFind.Value 
      .List(.ListCount - 1, 1) = rngToFind.Offset(0, 1).Value 
      .List(.ListCount - 1, 2) = rngToFind.Offset(0, 3).Value 
      .List(.ListCount - 1, 3) = rngToFind.Offset(0, 4).Value 
      .List(.ListCount - 1, 4) = rngToFind.Offset(0, 5).Value 

     End With 

回答

0

與您相關的有條件填充ListBox2的問題:您的代碼片段不會實現該部分。您可以根據列「B」中的DateTime值在列「A」中添加Items,如以下VBA代碼段中所示,使用DateDiff函數檢查您指定的條件(自列「B」中的日期值開始過去14天「):

Sub AddItemsToListbox2() 
Dim I As Integer 
Dim maxRow As Integer 

maxRow = 100 
ListBox2.Clear 
For I = 1 To maxRow 
    If (DateDiff("d", Now, Range("B" & I).Value) > 14) Then 
     ListBox2.AddItem Range("A" & I) 
    End If 
Next I 
End Sub 

將溶液在下面示出試樣數據集合測試(最後項加入到ListBox2):

A  B   C 
1423 3/21/2016 John 
2987 3/3/2016 Steve 
3345 4/28/2016 Anna 

希望這可能會有幫助。

+0

感謝您的亞歷克斯 - 快速問題,我應該在哪裏放置此代碼?在此先感謝 –

+0

您可以將其添加到您的代碼段中顯示的相同Sub,或從該代碼段調用此Sub,例如。調用AddItemsToListbox2()。如果您對解決方案感到滿意,請標記接受的答案。最好的問候, –

+0

不幸的是,這沒有奏效。我的日期存儲在J中,所以我將B值更改爲J,但沒有顯示在列表框中。有什麼建議麼?在此先感謝 –

相關問題