VB.Net将日期从Excel拉入数组

时间:2015-01-03 22:59:36

标签: arrays vb.net excel

我从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有某种关系。如何才能将日期正确加载到字符串格式ex" 12/3/2015"成阵列? 谢谢!

1 个答案:

答案 0 :(得分:1)

看来你的问题是你没有正确地在你的范围内迭代。您只需要引用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