我一直在尝试编写一小段代码来验证以确认日期是否包含在数组中。我已经能够滚动代码,直到我到达If lists(i) = TodaysDate Then
行时lists(i)
显示subscript out of range
。我通过互联网进行了搜索,但无法解决此问题。VBA运行时错误9:下标超出范围
我的宏如下:
Sub size_an_array()
Dim i As Integer
Dim Range_of_Dates As Integer
Dim TodaysDate As Variant, finish As String
TodaysDate = Range("Sheet11!c2")
ThisWorkbook.Worksheets("Sheet11").Activate
lists = Range("Processed_Dates")
Range_of_Dates = UBound(lists, 1) - LBound(lists, 1) + 1
For c = 1 To UBound(lists, 1) ' First array dimension is rows.
For R = 1 To UBound(lists, 2) ' Second array dimension is columns.
Debug.Print lists(c, R)
Next R
Next c
x = Range_of_Dates 'UBound(lists, 1)
ReDim lists(x, 1)
i = 1
Do Until i = x
If lists(i) = TodaysDate Then
Exit Do
End If
Loop
MsgBox "The date has not been found"
End Sub
我是比较新的VBA
和我一直在尝试使用命名区域在阵列中拉但我想在我无计可施很彻底解决这件事。
任何帮助将不胜感激。
纠正我,如果我错了,但你必须比较值,所以在两边添加“.Value”。变量x也没有定义,所以错误必须早出现 – makciook