繁体   English   中英

尝试访问不存在的数组元素时,Excel VBA 出现超出范围错误

[英]Out of Range error in Excel VBA when trying to access array element that doesn't exist

我有一个非常基本的问题。

上下文:1)我有一列,其中每个单元格可能包含也可能不包含逗号分隔条目的列表。 2)我遍历每一行并用逗号分隔每个单元格并将其输入一个数组。 3)然后我将每个元素的值写入数组中的另一个电子表格的新单元格中。

当我添加数组(0)时,我的公式有效,因为总是有一个条目(尽管它并不总是用逗号与其他条目分隔)。

当我添加数组(1)时,我的公式有条件地起作用,因为在某些情况下,它会通过用逗号分割单元格并访问第二个条目来获得值。

但是,很多时候 array(1) 没有值,我得到一个下标超出范围的错误。

我如何有条件地检查我正在访问的数组元素何时没有值来避免这种情况?

我目前有类似的东西:

Workbook.Worksheets("name").Cells(x,y).Value = array(1)

我想做类似的事情:

If (IsEmpty(array(1))) Then
    Workbook.Worksheets("name").Cells(x,y).Value = ""
Else 
    Workbook.Worksheets("name").Cells(x,y).Value = array(1)

但这也引发了下标错误。 有什么建议吗?

要检查数组中的元素数量,请使用UBound ,例如

If UBound(array) > 0 Then
    ... access array(1)
Else
    ... write a blank string.
End If

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM