Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有条件地向Excel ListBox控件添加项_Excel_Datetime_Listbox_Datediff_Vba - Fatal编程技术网

有条件地向Excel ListBox控件添加项

有条件地向Excel ListBox控件添加项,excel,datetime,listbox,datediff,vba,Excel,Datetime,Listbox,Datediff,Vba,我有如下示例中的Excel数据和3个列表框 我的电子表格示例: A B C 1423 21-03-16 John 2987 03-03-16 Steve 我的问题:在我的列表框2中,我只想显示A列中的内容,前提是B列中的天数已经过去了14天 我有这个代码,但无法让它工作 Dim rngToSearch As Range Dim rngToFind As Range Dim valToFind As Varia

我有如下示例中的Excel数据和3个列表框

我的电子表格示例:

 A          B         C
1423    21-03-16    John
2987    03-03-16    Steve
我的问题:在我的
列表框2
中,我只想显示A列中的内容,前提是B列中的天数已经过去了14天

我有这个代码,但无法让它工作

     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

与有条件地填充
列表框2
相关的问题:您的代码段未实现该部分。您可以根据列“B”中的
DateTime
值在列“A”中添加
,如下面的VBA代码片段所示,使用
DateDiff
函数检查您指定的条件(自列“B”中的日期值起14天过去了):

在如下所示的样本数据集上测试溶液(最后一项添加到
列表框2
):


希望这能有所帮助。

谢谢你的Alex快速提问,我应该把代码放在哪里?提前感谢您可以将其添加到代码段中显示的同一子项中,或者从该代码段调用此子项,例如调用AddItemsToListbox2()。如果您对解决方案感到满意,请将答案标记为已接受。致以最诚挚的问候,不幸的是,这不起作用。我的日期a存储在J中,因此我将B值更改为J,但列表框中没有显示任何内容。有什么建议吗?提前感谢回答您的原始问题,这是指存储在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
A       B           C   
1423    3/21/2016   John
2987    3/3/2016    Steve
3345    4/28/2016   Anna