如何获取特定尺寸数组的长度或大小

时间:2014-11-28 13:15:54

标签: vba

我正在寻找类似的东西:

假设我有一个数组,即myArray(0到5),并按如下方式分配给每个索引数组:

myArray(0)=" C"
myArray(1)=" A"
myArray(2)=" A B"
myArray(3)=" A C"
MyArray(4)=" B C"
MyArray(5)=" A B C"

我想找到一个数组元素的大小,例如MyArray(5),并给出答案为3,因为它包含三个字符A,B和C.

我无法按照自己的意愿找到答案。许多答案建议使用UBound功能,但这不会给我我想要的东西。感谢任何帮助。

3 个答案:

答案 0 :(得分:0)

您可以使用:

Sub Test()
    Dim str(1) As String
    str(0) = "Hello"
    str(1) = "and"

    For i = LBound(str) To UBound(str)
        MsgBox (Len(str(i)))
    Next i
End Sub

答案 1 :(得分:0)

获取值中的字母数

Sub CountLetters(theText as string)
    Dim tab() As String
    Dim i as integer
    dim nb as integer
    tab = split(theText)
    For i = 0 To UBound(tab)
        'if the uppercase caracter ascii code is above or equal 65 (code for "A") and below 90 (code for "Z"), we count it
        if ((asc(ucase(tab(i))) >= 65) and (asc(ucase(tab(i))) =< 90)) then
             nb = nb + 1
        end if
    Next i
    CountLetters = nb
End Sub

要使元素数量不为空白(空格不同):

Sub CountNotBlankElements(theText as string)
    Dim tab() As String
    Dim i as integer
    dim nb as integer
    tab = split(theText)
    For i = 0 To UBound(tab)
        'if the caracter ascii is not a space, we count it
        if (tab(i) <> " ") then
             nb = nb + 1
        end if
    Next i
    CountNotBlankElements = nb
End Sub

示例:

Msgbox CountLetters(MyArray(5))
Msgbox CountNotBlankElements(MyArray(5))

答案 2 :(得分:0)

我后来发现我的字符串之间有空格。因此,当我通过在字符串之间添加空格再次应用ruedi的代码时,例如:“a_n_d”(下划线表示空格键),它给出了5而不是3的答案。

我尝试了Veve的代码并进行了一些修改(以适应我的工作),如下所示:

Sub main_body()
'一些代码

将a调暗为整数
a = CountNotBlankElements(maResult(f))
'maResult(f)是我的特定全局数组,包含文本
'我将索引指定为全局变量f

'一些代码
结束子

函数CountNotBlankElements(可选ByVal theText As Variant)

Dim tab1()As String
    Dim i As Integer
    Dim nb As Integer
    'tab1 = Split(theText)
    tab1 =分裂(maResult(f))
    对于i = 0到UBound(tab1)
        '如果字符ascii不是空格,我们就算了         如果(tab1(i)&lt;&gt;“”)则              nb = nb + 1
        结束如果
    接下来我
    CountNotBlankElements = nb

结束功能

所以,我可以将变量'a'用于其他目的 非常感谢,对我来说还不错 欣赏它。