以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]怎么拆分数值  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=147897)

--  作者:hanlingli111999
--  发布时间:2020/3/26 19:41:00
--  [求助]怎么拆分数值
老师好,我第一列有数字,如-8*250,-6*3450,......
怎么实现在第二列出现8,6   在第三列依次为250 ,3450

--  作者:狐狸爸爸
--  发布时间:2020/3/27 9:19:00
--  
命令窗口执行:
Dim vals As String = "-8*250,-6*3450"
Dim parts() As String = vals.split(",")
For Each part As String In parts
    part = part.Trim("-").replace("*",",")
    output.show(part)
Next


--  作者:有点蓝
--  发布时间:2020/3/27 9:24:00
--  
参考:http://www.foxtable.com/webhelp/topics/0245.htm


Dim s As String  ="-8*250,-6*3450"
Dim r As Row
For Each s1 As String In s.Split(",")
    r = Tables("A").AddNew
    Dim ar() As String = s1.Split("*")
    r("第一列") = sr(0)
    r("第二列") = sr(1)
Next

--  作者:hanlingli111999
--  发布时间:2020/3/27 13:16:00
--  
谢谢老师
--  作者:hanlingli111999
--  发布时间:2020/3/28 15:42:00
--  
老师:我的每列有很多行,每行都是不同的数字,如:-250*8;-300*6;-220*10 。。。。。。,
我不可能把所有数字都这样写入Dim s As String  ="-8*250,-6*3450",而且数字还是随时变换的,
怎么修改代码呀,老师给的第二段代码运行错误

--  作者:有点蓝
--  发布时间:2020/3/28 16:16:00
--  
如果完全看不懂代码的,建议先学习基础:http://www.foxtable.com/webhelp/topics/1592.htm

如果看的懂的,把您改后的代码发上来。

--  作者:hanlingli111999
--  发布时间:2020/3/28 21:42:00
--  
For Each r As Row In Tables("表A").rows
    If r("钢板型号") = "" Then
        r("板宽") = Nothing
               r("板厚") = Nothing
        \'r("产品_参数I") = Nothing
    Else
        Dim ary() As String =  r("钢板型号") .split("*")
       
     r("板宽") = ary(0)
                r("板厚") = ary(1)
    End If
Next


--  作者:有点蓝
--  发布时间:2020/3/29 20:28:00
--  
代码在表格?窗口?什么事件的?

截图看看表格实际存储的数据。"钢板型号"存储的是【-250*8】,还是【-250*8;-300*6;....】多个?

--  作者:hanlingli111999
--  发布时间:2020/3/29 22:36:00
--  
老师好,感谢您,代码在表格,我把代码放在了表事件中,已调试成功,"钢板型号"列存储的是-250*8这种形式,
钢板型号列可以是任意行,最终代码如下:
For Each r As Row In Tables("拆分表").rows
    If r("钢板型号") = "" Then
        r("板宽") = Nothing
               r("板厚") = Nothing
        
    Else
        Dim ary() As String =  r("钢板型号") .split("*")
       
     r("板宽") = ary(0).SubString(1)
                r("板厚") = ary(1)
    End If
Next

--  作者:hanlingli111999
--  发布时间:2020/3/29 22:38:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:n7dm5gtpzx1r7`a%$lq{$7.png
图片点击可在新窗口打开查看