Foxtable(狐表)用户栏目专家坐堂 → 导入EXCEL表符合条件指定列的值


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

主题:导入EXCEL表符合条件指定列的值

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


加好友 发短信
等级:八尾狐 帖子:1989 积分:6291 威望:0 精华:0 注册:2017/11/8 17:37:00
导入EXCEL表符合条件指定列的值  发帖心情 Post By:2019/3/5 21:32:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新建文件夹.zip

想导入EXCEL表付款情况列的值,但是要求单号、物料编码、数量、供应商四列值相同才导入。

想了很久,网上查过不见有相同案例


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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/3/5 21:53:00 [只看该作者]


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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/3/5 21:59:00 [只看该作者]

Dim Book As New XLS.Book("D:\问题\新建文件夹\采购.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("当月采购").StopRedraw()
Dim nms() As String = {"供应商","单据类型","入库日期","单号","物料编码","货物名称","规格","单位","数量","单价","金额","付款情况"}
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim gys As String = sheet(n,0).Text
    Dim dh As String = sheet(n,3).Text
    Dim bm As String = sheet(n,4).Text
    Dim sl As String = sheet(n,8).Text
    Dim dr As DataRow = DataTables("当月采购").Find("供应商 = '" & gys & "' and 单号='" & dh & "' and 物料编码='" & bm & "' and 数量=" & sl)
    If dr IsNot Nothing Then '如果不存在同编号的订单
        For m As Integer = 0 To nms.Length - 1
            dr(nms(m)) = Sheet(n,m).Value
        Next
    End If
Next
Tables("当月采购").ResumeRedraw()

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


加好友 发短信
等级:八尾狐 帖子:1989 积分:6291 威望:0 精华:0 注册:2017/11/8 17:37:00
  发帖心情 Post By:2019/3/6 20:37:00 [只看该作者]

不知为什么,金额列填上数据后就卡住不行了


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


加好友 发短信
等级:八尾狐 帖子:1989 积分:6291 威望:0 精华:0 注册:2017/11/8 17:37:00
  发帖心情 Post By:2019/3/6 20:42:00 [只看该作者]

只能是字符才行,我试过把金额改成字符才可以,这个需怎样转换

 


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


加好友 发短信
等级:八尾狐 帖子:1989 积分:6291 威望:0 精华:0 注册:2017/11/8 17:37:00
  发帖心情 Post By:2019/3/6 20:55:00 [只看该作者]

修改了下,可以了,我再测试下先

 


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


加好友 发短信
等级:八尾狐 帖子:1989 积分:6291 威望:0 精华:0 注册:2017/11/8 17:37:00
  发帖心情 Post By:2019/3/6 23:24:00 [只看该作者]

Dim Book As New XLS.Book("D:\问题\新建文件夹\采购.xls")

Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("当月采购").StopRedraw()
'Dim nms() = {"供应商","单据类型","入库日期","单号","物料编码","货物名称","规格","单位","数量","单价","金额","付款情况"}
Dim a As Table = Tables("当月采购")    
For i As Integer = 0 To a.Rows.count-1

   For n As Integer = 1 To Sheet.Rows.Count -1
    
    Dim gys As String = sheet(n,0).Text
    Dim dh As String = sheet(n,3).Text
    Dim bm As String = sheet(n,4).Text
    Dim sl As String = sheet(n,8).Text
    'Dim a As Table = Tables("当月采购")    
 'For i As Integer = 0 To a.Rows.count-1

    Dim dr As DataRow = DataTables("当月采购").Find("供应商 = '" & gys & "' and 单号='" & dh & "' and 物料编码='" & bm & "' and 数量='" & sl & "'")  
     If dr IsNot Nothing Then '如果存在同编号的订单
   
        'For m As Integer = 0 To nms.Length - 1
             'dr(nms(11)) = Sheet(n,11).Text
        dr("付款情况") = Sheet(n,11).Text

    End If
 Next
Next
Tables("当月采购").ResumeRedraw()

这段代码不知道哪里出问题了,表里有几行相同的数据,只有第一行可以引用,其他就不能引用了,刚开始以为数据不同,后来把顺序调整后才知:电子表的数据只能引用一次,现在表里如果有多行相同数据,怎样才能引用符合电子表条件的值


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/7 9:04:00 [只看该作者]

Dim dr As DataRow = DataTables("当月采购").Find("供应商 = '" & gys & "' and 单号='" & dh & "' and 物料编码='" & bm & "' and 数量='" & sl & "'")  

 

改成

 

Dim dr As DataRow = nothing


 回到顶部