Foxtable(狐表)用户栏目专家坐堂 → [求助]多值列拆分成单行失败


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

主题:[求助]多值列拆分成单行失败

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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
[求助]多值列拆分成单行失败  发帖心情 Post By:2022/12/6 0:20:00 [只看该作者]

第一列多值列是空格换行时拆分多值为多行失败,
求助:多值列拆分成单行(已存在的就不新建,避免重复)

    For Each s As String In e.DataRow("第一列").split(" & Chr(13) & Chr(10) & ")  空格换行这个代码无效

狐表不能升级了,新版本打不开,辛苦蓝总把代码贴出来

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:多值列拆分成单行 -2.table


[此贴子已经被作者于2022/12/6 8:48:22编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105470 积分:536335 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/12/6 8:38:00 [只看该作者]

最终要什么效果

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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
回复:(有点蓝)最终要什么效果  发帖心情 Post By:2022/12/6 8:51:00 [只看该作者]

第一列的第一行的1个单元格里多值:
2134
2134
2314
2341

拆到表:多值列拆分成单行 里新建3行,第二列新建的这3行的3个单元格里分别录入
2134(已存在就不重复新建)
2314
2341

蓝总,理解上面我表达的效果没?



[此贴子已经被作者于2022/12/6 9:47:19编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105470 积分:536335 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/12/6 9:50:00 [只看该作者]

If e.DataCol.name="第一列"  AndAlso e.DataRow.isnull("第一列")=False Then
    For Each s As String In e.DataRow("第一列").Replace(vbcr, "").split(vblf)
        
        Dim dr As DataRow
        dr = DataTables("多值列拆分成单行").Find("第二列 = '" & s & "'")
        If dr Is Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
            Dim r As Row = Tables("多值列拆分成单行").addnew
            r("第二列")= s
        End If
    Next
End If

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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
回复:(有点蓝)If e.DataCol.name="第一列"  A...  发帖心情 Post By:2022/12/7 14:50:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:第一列多值单元格拆分失败求助.table


蓝总,上楼代码在项目中拆分数量太少不对,辛苦帮忙代码贴出来,高版本项目打不开

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105470 积分:536335 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/12/7 15:06:00 [只看该作者]

什么数据不对?

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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
回复:(有点蓝)什么数据不对?  发帖心情 Post By:2022/12/7 15:12:00 [只看该作者]

表A第一列1295行的多值拆分到表: 多值列拆分成单行的第二列  也是1295行(数据感觉少了)

[此贴子已经被作者于2022/12/7 15:14:50编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105470 积分:536335 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/12/7 15:13:00 [只看该作者]

哪个数据少了?我没有这个闲工夫一个个去核对

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


加好友 发短信
等级:狐神 帖子:4627 积分:33767 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2022/12/7 16:51:00 [只看该作者]

没错,1295只是巧合而已,可以增删一些数据试试。
不过我更喜欢用以下代码
Dim lst As New List(Of String)
For Each dr As DataRow In DataTables("表A").Datarows
    lst.AddRange(dr.Lines("第一列"))
Next
'Output.Show (lst.Distinct.Count)
DataTables("多值列拆分成单行").DataRows.Clear
DataTables("多值列拆分成单行").StopRedraw
For Each s As String In lst.Distinct
    Dim dr As DataRow = DataTables("多值列拆分成单行").AddNew
    dr("第二列") = s
Next
DataTables("多值列拆分成单行").ResumeRedraw

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


加好友 发短信
等级:三尾狐 帖子:660 积分:5180 威望:0 精华:0 注册:2019/7/26 12:54:00
回复:(y2287958)没错,1295只是巧合而已,可以增删...  发帖心情 Post By:2022/12/7 18:49:00 [只看该作者]

收到,感谢各位老师前辈

 回到顶部