gpt4 book ai didi

vba - 如何在 VBA 中动态调整数组的大小?我不断收到下标和索引问题

转载 作者:行者123 更新时间:2023-12-04 21:15:18 26 4
gpt4 key购买 nike

Dim codesArray() As Variant
...
If WorksheetExists(workSheetName) Then
...
Else
ReDim Preserve codesArray(UBound(codesArray) + 1) ' Error subscript
codesArray(UBound(codesArray)) = cell.Value
End If

我不确定为什么会出现索引超出范围错误。

基本上每次找不到工作表名称时,我都想将其添加到数组中,然后最终让用户知道丢失的工作表的名称。

所以最好的员工会有 0 个缺失的工作表。最糟糕的是会错过他们所有人。

最佳答案

问题在于 UBound(codesArray) .您不能调用UBound()在尚未确定尺寸的数组上。

您可以使用错误处理来解决这种情况。抽象为一个可能有用的子:

Sub ExtendArray(A As Variant, Optional NewPlaces = 1, Optional LBase = 0)
On Error GoTo err_handler
ReDim Preserve A(LBound(A) To UBound(A) + NewPlaces)
Exit Sub
err_handler:
ReDim A(LBase To LBase + NewPlaces - 1)
End Sub

关于vba - 如何在 VBA 中动态调整数组的大小?我不断收到下标和索引问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45497415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com