我有Excel数据,如下面显示的示例和3个ListBoxes
我的电子表格示例:
A B C
1423 21-03-16 John
2987 03-03-16 Steve
我的问题:在我的ListBox2
中,我只想在B列中的日期过去14天后才显示A列中的内容。
我有这段代码,但无法正常工作
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 :(得分:0)
关于有条件地填充ListBox2
的问题,您有问题:您的代码段未实现该部分。您可以从列" A"添加Items
。根据列中的DateTime
值" B"如下面的VBA代码片段所示,使用DateDiff
函数检查您指定的条件(自Column&#34中的日期值起经过14天; B")
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
希望这可能会有所帮助。