VB.Net 将 Excel 中的日期提取到数组中

VB.Net pulling dates from Excel into Array

我在从 excel 中提取日期并将它们加载到数组中时遇到了很多麻烦。我的代码应该可以正常工作,但没有任何内容被加载到数组中。当我在数组中搜索一个值时,无论它是什么,它都说它已在数组中的索引 -1 处找到。代码如下

Dim d As String
Dim strDate(0 To 35) As String
Dim dCell As Object
Dim tDate As String = Now.ToShortDateString

    Dim dCount = WFMBook.Range("G2:AO2").Cells.Count
        For y = 1 To dCount Step +1
            For Each dCell In WFMBook.Range("G2:AO2").Cells(y).Value.ToString
                d = WFMBook.Range("G2:AO2").Cells.Value.ToString
            Next
            strDate(y) = d
            TextBox1.Text = strDate(0)
        Next

然后在所有数据都加载到数组中之后(我有文本框功能来检查数组中是否有内容——没有结果打印到文本框中。)我执行此功能:

Dim dindex As Integer = Array.FindIndex(strDate, Function(s2) s2 = tDate)
MsgBox("Found Date " & tDate & " at index " & dindex)

不过,正如我之前所说,MsgBox 显示它是在索引 -1 处找到的,并且没有数组结果打印到文本框。我相信它与 Excel Date/Time 有某种关系。我怎样才能让它正确地将日期加载到字符串格式中,例如“12/3/2015”到数组中? 谢谢!

看来你的问题是你没有正确地遍历你的范围。您只需要参考 Cells 属性 对应的 WFMBook.Range("G2:AO2").

测试范围
Dim checkRange = WFMBook.Range("G2:AO2")
Dim dCount = checkRange.Cells.Count

For y = 1 To dCount
    ' Row postion (1) remains the same, but the column is incremented with y.
    d = checkRange.Cells(1, y).Value.ToString
    strDate(y) = d
    TextBox1.Text = strDate(0)
Next