Sub set_color() Dim r As Range, arr For Each r In Range("QF:ADT") arr = Split(r, ",") If UBound(arr) = 2 And IsNumeric(arr(0)) And IsNumeric(arr(1)) And IsNumeric(arr(2)) Then r.Value = "啊" r.Font.Color = RGB(CInt(arr(0)), CInt(arr(1)), CInt(arr(2))) End If Next End Sub下标越界
时间: 2023-08-03 17:08:31 浏览: 51
这个错误很可能是因为在使用 Split 函数时,返回的数组长度不够,导致在访问数组元素时越界了。
你可以在代码中加入一些调试信息,来帮助你找到错误所在的位置。例如,你可以在循环中加入以下代码:
```
For Each r In Range("QF:ADT")
arr = Split(r, ",")
Debug.Print "arr length: " & UBound(arr)
If UBound(arr) = 2 And IsNumeric(arr(0)) And IsNumeric(arr(1)) And IsNumeric(arr(2)) Then
r.Value = "啊"
r.Font.Color = RGB(CInt(arr(0)), CInt(arr(1)), CInt(arr(2)))
End If
Next
```
然后在运行代码时,在 VBA 的“立即窗口”中查看输出信息,就可以知道每个数组的长度了。这样就可以找到哪个数组越界了,并根据具体情况修复代码。