Foxtable(狐表)用户栏目专家坐堂 → 将某列的字符拆成两列


  共有4419人关注过本帖树形打印复制链接

主题:将某列的字符拆成两列

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/10/1 16:34:00 [显示全部帖子]

 参考下面的代码来改,弄不好的话,上传一个例子,说明要怎么做。

 

Dim data() As String = {"1020mm*100M", "36""*50ft"}
For Each d As String In data
    Dim ary() As String = d.Split("*")
    ary(0) = ary(0).Replace("mm", "").Replace("""", "*25.4")
    ary(1) = ary(1).Replace("M", "").Replace("ft", "*0.3048")
    msgbox(ary(0) & "   " & ary(1))
Next


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/10/2 11:15:00 [显示全部帖子]

 把下面的代码复制到命令窗口执行,可以一次性填入数据。

 

For Each dr As DataRow In DataTables("物料表").Select("规格型号 is not null")
    Dim sps() As Char = {"*", "x", "X"}
    Dim ary() As String = dr("规格型号").split(sps)
    Dim width As String = ary(0).Replace("m", "").Replace("M", "").Replace(" ", "").Replace("""", "*25.4")
    Dim height As String = ary(1).Replace("m", "").Replace("M", "").Replace(" ", "").Replace("ft", "*0.3048").Replace("y", "").Replace("Y", "")

    dr("规格型号_宽mm") = Eval(width)
    dr("规格型号_长M") = Eval(height)
Next


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/10/2 14:32:00 [显示全部帖子]

以下是引用lsy在2013-10-2 13:29:00的发言:

直接在导入后将【规格型号】列的数据规范化,不需要增加两列、再拆分:

DataColChanged

If e.DataCol.Name = "规格型号" Then
    Dim s As String = e.DataRow(e.DataCol).ToLower().Replace("m","").Replace("*","x").Replace(" ","").Replace("y","*0.9144").Replace("""","*25.4").Replace("ft","*0.3048")
    If s.Contains("x") Then
        e.DataRow(e.DataCol) = Eval(s.Split("x")(0)) & "mm x " & Eval(s.Split("x")(1)) & "m"
    End If
End If

[此贴子已经被作者于2013-10-2 13:48:58编辑过]


顶……

 回到顶部