我从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"成阵列? 谢谢!
答案 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