我想判断 I列 有数据的单元格是否为日期格式,写了一段代码,但是总提示下标越界,请帮忙找出下原因?
Sub 检查数据()
Dim arr
Dim j
Dim rn
j = Sheets("汇总表").Range("b65536").End(3).Row
arr = Sheets("汇总表").Range("i5:i" & j).Value
For k = 1 To UBound(arr)
If IsDate(arr(k)) = False And rn = "" Then
rn = Range("i" & k + 4).Address
ElseIf IsDate(arr(k)) = False Then
rn = rn & "、" & Range("i" & k + 4)
End If
Next k
If rn = "" Then
MsgBox "数据无误"
Else
MsgBox rn
End If
End Sub 问题.rar(34.43 KB, 下载次数: 4)
Sub 检查数据()
Dim arr
Dim j
Dim rn
j = Sheets("汇总表").Range("b65536").End(3).Row
arr = Sheets("汇总表").Range("i5:i" & j).Value
For k = 1 To UBound(arr)
If Not IsDate(arr(k, 1)) And rn = "" Then
rn = Range("i" & k + 4).Address
ElseIf IsDate(arr(k, 1)) = False Then
rn = rn & "、" & Range("i" & k + 4)
End If
Next k
If rn = "" Then
MsgBox "数据无误"
Else
MsgBox rn
End If
End Sub
那是arr是二维数组 不是一维数组
你是想得到地址还是内容?
以下是得到地址,在数据量大时速度略快点点
Sub 检查数据()
Dim arr()
Dim j&
Dim rn$
j = Sheets("汇总表").Range("i65536").End(3).Row
arr = Sheets("汇总表").Range("i5:i" & j).Value
For j = 1 To UBound(arr)
If IsDate(arr(j, 1)) = False Then
rn = rn & "、$i$" & j + 4
End If
Next
If rn = "" Then
MsgBox "数据无误"
Else
MsgBox Mid(rn, 2)
End If