有条件地向Excel ListBox控件添加项
我有如下示例中的Excel数据和3个列表框 我的电子表格示例:有条件地向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
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