列表框中特定项的值

时间:2014-01-20 18:43:11

标签: excel vba listbox

我在Excel中的VBA应用程序中有一个五列列表框。我已经了解了如何返回所选项的值,但有没有办法获取列表中最后一项的值?在列表框的第二列中,我有一个我想要与预设日期进行比较的日期。如果措辞严厉,我道歉。

说我有一个像2014年1月13日这样的日期。我想将它与列表框中最后一项的第二列中的日期进行比较。

示例列表框

1,01 / 01/2014,例如,示例,示例

2,01/05/2014,例如,示例,示例

3,01 / 07/2014,例如,示例,示例

4,2014年1月14日,示例,示例,示例< ---我想要来自此第二列的日期

我只是不知道如何在没有用户手动选择的情况下返回最后一条记录的值。有任何想法吗?

我知道我可能不得不使用ListCount属性来获取列表框中的项目总数,但我不知道如何引用该特定索引(即使用listcount来查找上述列表有4个项目并参考lstCases(4,2)的数据

1 个答案:

答案 0 :(得分:0)

我明白了。使用List属性,我可以指定行和列。我有一个函数可以获取最新的检查点(从项目开始到现在每两周一次)并将其作为日期返回。

Function getCheckpoint() As Date

 Dim startDate As Date

 startDate = "12/30/2013"

 Do
     startDate = DateAdd("d", 14, startDate)
 Loop Until startDate > Now()

 getCheckpoint = DateAdd("d", -14, startDate)


End Function

所以我用它来比较如下:

If CDate(frmViewer.lstCases.List(frmViewer.lstCases.ListCount - 1, 1)) < getCheckpoint() Then
    MsgBox ("Please begin a new case")
End If

这样,我找到ListCount并减去一个以查找最后一条记录,并将该列指定为1以获取第二列。希望这将有助于将来的其他人!