以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- vlookup 想对查找的数值进行取左边2位数后再进行匹配 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=185212) |
-- 作者:fx719 -- 发布时间:2023/2/10 11:57:00 -- vlookup 想对查找的数值进行取左边2位数后再进行匹配 用的是这串代码,不取左边两位数是可以完全匹配的,想对查找的第三列取左边2位数后再进行查找匹配 If e.DataCol.Name = "第三列" Then \'如果内容发生变动的是第三列 If e.NewValue Is Nothing Then \'如果新值是空白,也就是第三列的内容为空 e.DataRow("周数") = Nothing \'那么清空此行周数的内容 Else Dim dr As DataRow \'否则在产品表查找同名的产品行,将找到的行赋值给变量dr dr = DataTables("生产1").Find(("[第三列] = \'" & e.NewValue & "\'") If dr IsNot Nothing Then \'如果找到了同名的产品行,也就是dr不是Nothing e.DataRow("周数") = dr("周数") End If End If End If |
-- 作者:有点蓝 -- 发布时间:2023/2/10 12:02:00 -- 2个表数据是怎么样的,截图看看。同时说明一下要的结果 |
-- 作者:fx719 -- 发布时间:2023/2/10 12:58:00 -- If e.DataCol.Name = "工单单号" Then Dim nms() As String = {"销售品号","销售品名","销售图号","工单规格","工单数量"} If e.NewValue Is Nothing Then For Each nm As String In nms e.DataRow(nm) = Nothing Next Else Dim dr As DataRow dr = DataTables("工单需求").Find("[工单单号] = \'" & e.NewValue & "\'") If dr IsNot Nothing \'不为空值 For Each nm As String In nms e.DataRow(nm) = dr(nm) Next End If End If End If |
-- 作者:有点蓝 -- 发布时间:2023/2/10 13:31:00 -- dr = DataTables("工单需求").Find("[工单单号] = \'" & left(e.NewValue,14) & "\'") |