有个vb数组赋值问题

有个vb问题,求大虾提点下,搞不懂问题如下:一个字符串如:"000,120,140,235"用Split按照","取成数组分别放入a()再用循环读出每一组里面的每个元素,... 有个vb问题,求大虾提点下,搞不懂

问题如下:
一个字符串如: "000,120,140,235"

用 Split 按照","取成数组分别放入a()
再用循环读出每一组里面的每个元素,放入变量

问题出现了:第一位为非0数时,其中的0可以读出来,第一位为0或者00时,读出来的是空值,

有大侠碰到过这样的问题么,求指导啊,谢谢了
展开
 我来答
unsamesky
2013-06-02 · TA获得超过2734个赞
知道小有建树答主
回答量:859
采纳率:100%
帮助的人:420万
展开全部

如果你用一个变体类型的变量来Split成一个数组,那么数值型数据将被分配成整形或者浮点类型的数值。

对于数值型的数据来说:000,00,00000,0都是一样的,都表示0。而且在VB里面也只会认为是0。

但是,像100,这样的数字,后面的0是不能省略的,数学常识。

只有当一个数字,用字符串型表示的时候,"000"和"000000"才有区别。

所以,我们直接定义一个字符串类型的动态数组来读取该数据,这样,所有的数值型元素也将被当做字符串来看待,这样"000"就是一个长度为3的字符串了。如下:

Sub Command1_Click()
    Dim arr() As String
    arr = Split("000,120,140,235", ",")
    Dim i As Integer
    For i = 1 To 3
        Print i & "=" & Mid(arr(0), i, 1)
    Next
End Sub
更多追问追答
追问

我也是定义的str,但是还是不行

追答
Dim s as string, K as String
Dim G as String , J As String , M As String , N as String
这里的as String一个都不要省略,你再试试。
一个误区:
Dim G,J,M,N as String,通过这种方法定义的变量,G,J,M均为变体类型的变量,只有N是字符串型。并不是想象中的G,J,M也为String类型的变量的。必须显式的指定每一个变量的类型才行。

字符串变量定义的简写方法:
Dim s$,K$
Dim G$,J$,M$,N$
szqaly
2013-06-02 · TA获得超过1745个赞
知道大有可为答主
回答量:2107
采纳率:77%
帮助的人:1493万
展开全部
有这事吗?你有没有把变量定义为字符串类型

我用vb试了下,split 返回的默认为字符串类型数组
赋给的变量类型,通用型和字符串类型的都可以。只数值类型的变量,那就变成一个0了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
寒信HK
2013-06-02 · TA获得超过1876个赞
知道大有可为答主
回答量:1326
采纳率:92%
帮助的人:375万
展开全部
要看代码才知道问题在哪。会不会是变量类型错误,数组和变量也要是字符型的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式