如果一个日期进入我的数组,我测试此代码循环。
用A列上的例子,没什么问题,
结果消息是3,在我看到的即时窗口中(01/01 / 2015,06 / 01 / 2015,02 / 02/2015)
为了测试某些情况,当只有1天进入阵列时,我删除了2天(A3,A4),如C列。
结果消息为1,但我收到规则For Each i In arfest
上的错误(错误运行时13,类型不对应)
如果我也删除了A2上的值,我会检索带有1的msg和前面例子中的相同错误。
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
出了什么问题?!?!? 感谢
答案 0 :(得分:1)
在您的范围内只有一个对象,在循环开始时设置一个断点。你会看到arfest是一个单独的日期。没有什么可循环的。这突出了将一切变暗作为变体并让编译器决定变量持有的问题之一。在您的声明中更具体。如果你知道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的区别。