vbscript VBScript或VBA数组函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vbscript VBScript或VBA数组函数相关的知识,希望对你有一定的参考价值。

Function getUBound(arr)
    getUBound = -1
    On Error Resume Next
    getUBound = UBound(arr)
    On Error GoTo 0
End Function

Function getLength(arr)
    getLength = getUBound(arr) + 1
End Function

Sub push(arr, item)
    Dim newIndex: newIndex = getUBound(arr) + 1
    ReDim Preserve arr(newIndex)
    On Error Resume Next
    arr(newIndex) = item
    On Error GoTo 0
    If Err.Number <> 0 Then Set arr(newIndex) = item
End Sub

Function pop(arr)
    Dim top: top = getUBound(arr)
    If top < 0 Then 'array is empty
        pop = Null
    Else
        On Error Resume Next
        pop = arr(top)
        On Error GoTo 0
        If Err.Number <> 0 Then Set pop = arr(top)
        ReDim Preserve arr(top - 1)
    End If
End Function

Sub unshift(arr, item)
    Dim i, top: top = getUBound(arr)
    ReDim Preserve arr(top + 1)
    For i = top + 1 To 1 Step -1
        On Error Resume Next
        arr(i) = arr(i - 1)
        On Error GoTo 0
        If Err.Number <> 0 Then Set arr(i) = arr(i - 1)
    Next
    On Error Resume Next
    arr(0) = item
    On Error GoTo 0
    If Err.Number <> 0 Then Set arr(0) = item
End Sub

Function shift(arr)
    Dim i, top: top = getUBound(arr)
    If top < 0 Then 'array is empty
        shift = Null
    Else
        On Error Resume Next
        shift = arr(0)
        On Error GoTo 0
        If Err.Number <> 0 Then Set shift = arr(0)
        For i = 1 To top
            On Error Resume Next
            arr(i - 1) = arr(i)
            On Error GoTo 0
            If Err.Number <> 0 Then Set arr(i - 1) = arr(i)
        Next
        ReDim Preserve arr(top - 1)
    End If
End Function

以上是关于vbscript VBScript或VBA数组函数的主要内容,如果未能解决你的问题,请参考以下文章

vbscript VBA - Excel - Hack受保护的Excel文档或表格(VBA) - 代码

vbscript VBA Excel交叉连接和清理数据,每个单元格有多个条目,以逗号或换行符分隔

vbscript VBA函数以传统方式舍入以5结尾的数字,而不是“舍入到偶数”逻辑。不幸的是,这是显着的

使用 VBA 控制 VBScript

将 Staad 与 VBS 一起使用(将 VBA 文档转换为 VBscript)

在VBScript文件中集成VBA