aa = array("1","2","3") 和 aa = split("1,2,3",",") 这两种处理方式,对于 aa 最终的值有区别吗?1、这两个函数的作用完全是两回事,楼上的朋友的回贴已经把这两个函数讲得很明白了; 2、两者生成的数组下标值有可能会不一样,因为Array创建的数组的下界由Option Base决定,因此它生成的数组可能是aa(2)也可能是aa(3),而split生成的数组只能是aa(2)
用Array函数进行动态赋值就太大意义了。 你还是可以使用Split函数,只是需要简单的转换一下:Dim var As Variant NewBindings = "192.135.0.36:80:ok.com,192.135.0.36:80:www.ok2.com" var = Split(NewBindings, ",")NewWebServer.ServerBindings =var
S_GetBindings = "1.1.1.1:88:ok1.com,2.2.2.2:77:ok2.com.cn" GetBindings = Split(S_GetBindings, ",") ReDim NewBindings(UBound(GetBindings)) For I = 0 To UBound(GetBindings) NewBindings(I) = GetBindings(I) Next NewWebServer.ServerBindings = NewBindings我是这样写的。谢谢了!!
使用我上面给的方法就应该可以吧: dim varNewBindings As VariantS_GetBindings = "1.1.1.1:88:ok1.com,2.2.2.2:77:ok2.com.cn" GetBindings = Split(S_GetBindings, ",") varNewBindings =GetBindingsNewWebServer.ServerBindings=varNewBindings 下面的语句多余了 ReDim NewBindings(UBound(GetBindings)) For I = 0 To UBound(GetBindings) NewBindings(I) = GetBindings(I) Next
A = Array(10,20,30)
B = A(2)使用 Array 函数创建的数组的下界受 Option Base 语句指定的下界的决定, 除非 Array 是由类型库(例如 VBA.Array )名称限定。如果是由类型库名称限定,则 Array 不受 Option Base 的影响。注意 没有作为数组声明的 Variant 也可以表示数组。除了长度固定的字符串以及用户定义类型之外,Variant 变量可以表示任何类型的数组。尽管一个包含数组的 Variant 和一个元素为 Variant 类型的数组在概念上有所不同,但对数组元素的访问方式是相同的。Split函数
描述返回一个下标从零开始的一维数组,它包含指定数目的子字符串。语法Split(expression[, delimiter[, count[, compare]]])Split函数语法有如下几部分:部分 描述
expression 必需的。包含子字符串和分隔符的字符串表达式 。如果expression是一个长度为零的字符串(""),Split则返回一个空数组,即没有元素和数据的数组。
delimiter 可选的。用于标识子字符串边界的字符串字符。如果忽略,则使用空格字符(" ")作为分隔符。如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的 expression字符串。
count 可选的。要返回的子字符串数,–1表示返回所有的子字符串。
compare 可选的。数字值,表示判别子字符串时使用的比较方式。关于其值,请参阅“设置值”部分。
设置值compare参数的设置值如下:常数 值 描述
vbUseCompareOption –1 用Option Compare语句中的设置值执行比较。
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文字比较。
vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比较。
和
aa = split("1,2,3",",")
这两种处理方式,对于 aa 最终的值有区别吗?1、这两个函数的作用完全是两回事,楼上的朋友的回贴已经把这两个函数讲得很明白了;
2、两者生成的数组下标值有可能会不一样,因为Array创建的数组的下界由Option Base决定,因此它生成的数组可能是aa(2)也可能是aa(3),而split生成的数组只能是aa(2)
NewBindings(0) = "192.135.0.36:80:ok.com"
NewBindings(1) = "192.135.0.36:80:www.ok2.com"
NewWebServer.ServerBindings = NewBindings这样写不对================================================================================NewBindings = "192.135.0.36:80:ok.com,192.135.0.36:80:www.ok2.com"
NewWebServer.ServerBindings = Split(NewBindings , ",")这样写也不对================================================================================NewWebServer.ServerBindings = Array("192.135.0.36:80:ok.com", "192.135.0.36:80:www.ok2.com")这样写就对了================================================================================但是我无法用Array的方法来实现动态取值
Split函数返回一个字符串数组
Array函数返回一个包含数组的Variant变量
ServerBindings属性应该要求的就是一个Variant变量。NewBindings = Array(2)
----
这样写肯定不对,它返回的是一个1维整型数组,第1维元素的值为2但是我无法用Array的方法来实现动态取值
--------------
这句话没怎么明白。
你还是可以使用Split函数,只是需要简单的转换一下:Dim var As Variant
NewBindings = "192.135.0.36:80:ok.com,192.135.0.36:80:www.ok2.com"
var = Split(NewBindings, ",")NewWebServer.ServerBindings =var
GetBindings = Split(S_GetBindings, ",")
ReDim NewBindings(UBound(GetBindings))
For I = 0 To UBound(GetBindings)
NewBindings(I) = GetBindings(I)
Next
NewWebServer.ServerBindings = NewBindings我是这样写的。谢谢了!!
dim varNewBindings As VariantS_GetBindings = "1.1.1.1:88:ok1.com,2.2.2.2:77:ok2.com.cn"
GetBindings = Split(S_GetBindings, ",")
varNewBindings =GetBindingsNewWebServer.ServerBindings=varNewBindings 下面的语句多余了
ReDim NewBindings(UBound(GetBindings))
For I = 0 To UBound(GetBindings)
NewBindings(I) = GetBindings(I)
Next