天数的循环数组错误

我testing这个代码来循环,如果有一个date是我的数组。 以列A为例,没有什么问题,结果信息是3,在我看到的即时窗口(01/01 / 2015,06 / 01 / 2015,02 / 02/2015)testing一些情况下,只有1天进入数组,我删除了像C列那样的2天(A3,A4),结果消息是1,但是我在规则上收到错误For Each i In arfest (错误运行时13,input不对应),如果我也删除了值在A2上,我检索1与前面的例子相同的错误味精。

在这里输入图像说明

 Sub dada_click() Dim arfest As Variant Dim i As Variant UR = Sheets("Fest").Cells(Rows.Count, 1).End(xlUp).Row If UR < 2 Then UR = 2 arfest = Sheets("Fest").Range("A2:A" & UR) MsgBox (Application.CountA(arfest)) For Each i In arfest Debug.Print i Next i End Sub 

怎么了?!?!? 谢谢

在范围内只有1个对象的情况下,在循环开始处设置一个断点。 你会看到这是一个单一的date。 没有什么东西可以循环。 这凸显了将所有东西变暗的问题,并让编译器决定variables所持有的东西。 在你的声明中更具体。 如果你知道arfest是一个范围,告诉编译器! 我也一样。 试试这个,看看是否让你过去了你的问题:

 Sub test() Dim arfest As Range Dim i As Range UR = Sheets("Fest").Cells(Rows.Count, 1).End(xlUp).Row If UR < 2 Then UR = 2 Set arfest = Sheets("Fest").Range("A2:A" & UR) For Each i In arfest Debug.Print i Next i End Sub 

再一次,通过我的代码和你的代码,看看在每种情况下如何处理arfest的区别。