Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1125|回复: 7

关于数组的split疑问

[复制链接]
发表于 2022-8-11 20:39 | 显示全部楼层 |阅读模式
3学分
               第一种写法不报错
                arr = Split(d(Target.value), "-")
                Target.Offset(0, 1) = arr(0)
                Target.Offset(0, 2) = arr(1)

                '下面的写法报错“下标越界”
                Target.Offset(0, 1) = Split(d(Target.value), "-")(0)
                Target.Offset(0, 2) = Split(d(Target.value), "-")(1)

               这2种写法难道不是等价的吗?

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2022-8-11 20:47 | 显示全部楼层
d(Target.value)的值未设置,这时为空。
回复

使用道具 举报

 楼主| 发表于 2022-8-11 20:51 | 显示全部楼层
hasyh2008 发表于 2022-8-11 20:47
d(Target.value)的值未设置,这时为空。

我截取的代码不全,d(Target.value)是有值的,如果没有值,那上面那种写法也会报错的。但上面的写法不报错
回复

使用道具 举报

发表于 2022-8-12 10:46 | 显示全部楼层
本帖最后由 砂海 于 2022-8-13 15:21 编辑

...,如果没有值,那上面那种写法也会报错的。但上面的写法不报错

???

split 的结果 通常是数组 , 但没有分隔符 就是 非数组变量
非数组变量(0) 当然出错
更正:
split("","-") 返回 空数组
空数组(0) 出错



--------------------------------

硬跳过的话
split( 数据 & "-" , "-")  ,
这样结果就必定是有效数组了



回复

使用道具 举报

发表于 2022-8-12 14:09 | 显示全部楼层
确实等价的,如果上面的没出错,下面的也不会出错。
另,split返回的结果必定是一维数组,不管含不含分隔符。
如果还有问题请上传有问题的附件。
回复

使用道具 举报

发表于 2022-8-13 15:20 | 显示全部楼层
大灰狼1976 发表于 2022-8-12 14:09
确实等价的,如果上面的没出错,下面的也不会出错。
另,split返回的结果必定是一维数组,不管含不含分隔 ...

4楼回答更正为:
split("","-") 返回 空数组
空数组(0) 出错
===================================================

Sub cs()
    Dim a, i, z
    a = Array("", "b-b")
    For i = 0 To 1
        z = Split(a(i), "-")
        Debug.Print "i = " & i, IIf(UBound(z) < LBound(z), "空数组", "非空数组")
    Next i
End Sub
xz01.png


回复

使用道具 举报

发表于 2022-8-13 18:55 | 显示全部楼层
砂海 发表于 2022-8-13 15:20
4楼回答更正为:
split("","-") 返回 空数组
空数组(0) 出错

我用 cr = Split(ExADD, "$")  
cr是变量,拆分出来的数据是类型是文本格式。
   这里怎么在重新声明下cr 这个变量里面的元素是整数行的呢
回复

使用道具 举报

发表于 2022-8-17 13:56 | 显示全部楼层
砂海 发表于 2022-8-13 15:20
4楼回答更正为:
split("","-") 返回 空数组
空数组(0) 出错

确实,没有考虑原字符串是空字符串的情况,空字符串时ubound(arr)是-1,但是无法取值,如果分隔符也是空字符串时倒是可以。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-23 15:24 , Processed in 0.406286 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表