2016-03-21 61 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,但没有显示在列表框中。有什么建议么?在此先感谢 –

相关问题