以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 索引超出了数组界限 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=173837) |
-- 作者:longyanlin -- 发布时间:2021/12/18 14:01:00 -- 索引超出了数组界限 急求问题解决,请教执行如下代码是,出现索引超出了数组界限是怎么回事: For Each dr As Row In Tables("装配日记录表").rows Dim ary() As String = dr("不良原因及数量").split(",") For Each s As String In ary Dim ndr As Row = Tables("装配质量流水账").addnew Dim a() As String = s.split("*") ndr("不良原因") = a(0) ndr("不良数量") = a(1) ndr("产品编号") = dr("产品编号") Next Next |
-- 作者:有点蓝 -- 发布时间:2021/12/18 14:07:00 -- For Each dr As Row In Tables("装配日记录表").rows Dim ary() As String = dr("不良原因及数量").split(",") For Each s As String In ary Dim ndr As Row = Tables("装配质量流水账").addnew Dim a() As String = s.split("*") ndr("不良原因") = a(0) if a.length > 1 then ndr("不良数量") = a(1) ndr("产品编号") = dr("产品编号") Next Next |
-- 作者:longyanlin -- 发布时间:2021/12/18 14:19:00 -- 使用如上代码分解不出来:“不良原因”,与“不良数量”,而是复制了所表的所有编号 |
-- 作者:有点蓝 -- 发布时间:2021/12/18 14:41:00 -- 说明源表就没有数据 For Each dr As Row In Tables("装配日记录表").rows msgbox(dr("不良原因及数量")) …… |
-- 作者:longyanlin -- 发布时间:2021/12/18 15:25:00 -- 老师,确实前面的表里面有很多行“不良原因及数量”里面没有内容,但是筛选有内容的后还是不能分离成两列的数量,“不良数量”里面还是为空,能帮助改下代码: For Each dr As Row In Tables("装配日记录表").rows Dim ary() As String = dr("不良原因及数量").split("") For Each s As String In ary Dim ndr As Row = Tables("装配质量流水账").addnew Dim a() As String = s.split("") ndr("不良原因") = a(0) If a.length > 1 Then ndr("不良数量") = a(1) ndr("产品编号") = dr("产品编号") Next Next 增加代码变成筛选“不良原因及数量”不为空的行,以及分类成“不良原因”和“不良数量”两列都填写上 如上代码还是没有“不良数量”: |
-- 作者:有点蓝 -- 发布时间:2021/12/18 15:35:00 -- 源数据源怎么样的?根据什么字符分隔?不可能根据空字符串分隔到的.split("") |
-- 作者:longyanlin -- 发布时间:2021/12/18 15:58:00 -- 原数据源是按”文字+数字,用,逗号分组 老师,提取可以了,但是不会过滤不为空的值,
[此贴子已经被作者于2021/12/18 16:17:15编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/12/18 16:20:00 -- 数据里要改为英文的逗号:Dim ary() As String = dr("不良原因及数量").split(",") 然后“掌声30”这种中间没有分隔符,是无法使用split拆分的。改为“掌声-30”这种,或者其它符号分隔 不然有点麻烦,可以参考 Dim pattern As String = "[\\u4e00-\\u9fa5]" For Each dr As Row In Tables("装配日记录表").rows Dim ary() As String = dr("不良原因及数量").split(",") For Each s As String In ary Dim ndr As Row = Tables("装配质量流水账").addnew Dim str = System.Text.RegularExpressions.Regex.Replace(s, pattern ,"") ndr("不良数量") = str ndr("不良原因") = s.replace(str,"") ndr("产品编号") = dr("产品编号") Next Next |
-- 作者:longyanlin -- 发布时间:2021/12/18 16:36:00 -- 老师,其他都没有问题了,主要是怎么实现筛选“不良原因及数量”行里面有数据进行统计,而没有数据的行就自动过滤(空值) |
-- 作者:有点蓝 -- 发布时间:2021/12/18 16:53:00 -- 使用8楼的方法处理后,在对"不良数量"列数据进行统计 |