【问题标题】:Value of specific item in listbox列表框中特定项目的值
【发布时间】:2014-01-21 03:04:35
【问题描述】:

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

假设我有一个日期,比如 2014 年 1 月 13 日。我想将它与列表框中最后一项的第二列中的日期进行比较。

示例列表框

1, 01/01/2014, 例子, 例子, 例子

2,01/05/2014,例子,例子,例子

3, 01/07/2014, 例子, 例子, 例子

4, 01/14/2014, example, example, example

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

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

【问题讨论】:

    标签: excel vba listbox


    【解决方案1】:

    我想通了。使用 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 以获取第二列。希望这将在未来对其他人有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多