我正在寻找类似的东西:
假设我有一个数组,即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功能,但这不会给我我想要的东西。感谢任何帮助。
答案 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'用于其他目的 非常感谢,对我来说还不错 欣赏它。