以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]第一列的字符在第二列字符中含有的数量录入到第三列  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=184613)

--  作者:miaoqingqing
--  发布时间:2022/12/16 8:42:00
--  [求助]第一列的字符在第二列字符中含有的数量录入到第三列
求助,第一列的字符在第二列字符中含有的数量录入到第三列

With Tables("表A")
    For i As Integer = 0 To .Rows.Count -1
        Dim s As String = .Rows(i)("第一列")
        Dim s2 As String = .Rows(i)("第二列")
        For Each c As Char In s
            If s2.contains(c) Then
                .Rows(i)("第三列") = count(c) \'求助含有几个一样字符的数量
                Exit For
            End If
        Next
    Next
End With

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:高版本打不开,辛苦版主代码贴出来.table



[此贴子已经被作者于2022/12/16 8:46:52编辑过]

--  作者:有点蓝
--  发布时间:2022/12/16 9:01:00
--  
               .Rows(i)("第三列") += 1 \'求助含有几个一样字符的数量
--  作者:y2287958
--  发布时间:2022/12/16 9:02:00
--  
结果是啥
--  作者:miaoqingqing
--  发布时间:2022/12/16 9:09:00
--  回复:(有点蓝)         ...
蓝总,      
.Rows(i)("第三列") += 1 \'
从字符串“”到类型“Double”的转换无效。
输入字符串的格式不正确。

.Rows(i)("第三列") = 1 \'含有的,录入值都是1,不是想要的结果

想要的结果是:
第一列值    第二列值    第三列值
1234        34567       2
1234        45678       1
1234        1234         4

--  作者:有点蓝
--  发布时间:2022/12/16 9:16:00
--  
"第三列"改为整数
--  作者:y2287958
--  发布时间:2022/12/16 9:27:00
--  
For Each dr As DataRow In DataTables("表A").DataRows
    Dim 数组1() As Char = dr("第一列")
    Dim 数组2() As Char = dr("第二列")
    dr("第三列") = 数组1.Intersect(数组2).Count 
Next

--  作者:miaoqingqing
--  发布时间:2022/12/16 9:27:00
--  回复:(有点蓝)"第三列"改为整数

图片点击可在新窗口打开查看此主题相关图片如下:求助第3列自动录入含有相同字符的数量.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:高版本打不开,辛苦版主代码贴出来.table

蓝总,想实现的效果详见图片文字描述



--  作者:y2287958
--  发布时间:2022/12/16 9:29:00
--  
见6楼。就是不知道你的版本能不能用Linq
--  作者:有点蓝
--  发布时间:2022/12/16 9:30:00
--  
看5、6楼
--  作者:miaoqingqing
--  发布时间:2023/1/5 14:00:00
--  回复:(有点蓝)看5、6楼
蓝总,
For Each dr As DataRow In DataTables("表A").DataRows
    Dim 数组1() As Char = dr("第一列")
    Dim 数组2() As Char = dr("第二列")
    dr("第三列") = 数组1.Intersect(数组2).Count 
Next
上楼代码,执行第三列值是1,如果要执行第三列值是2,上楼代码,求助怎么修改?
第一列   第二列     第三列
99        23489        1