以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 导入EXCEL表符合条件指定列的值 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=131745) |
||||
-- 作者:zhuxinhui -- 发布时间:2019/3/5 21:32:00 -- 导入EXCEL表符合条件指定列的值
想导入EXCEL表付款情况列的值,但是要求单号、物料编码、数量、供应商四列值相同才导入。 想了很久,网上查过不见有相同案例 |
||||
-- 作者:有点蓝 -- 发布时间:2019/3/5 21:53:00 -- 参考:http://www.foxtable.com/webhelp/scr/2334.htm |
||||
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2019/3/6 20:37:00 -- 不知为什么,金额列填上数据后就卡住不行了 |
||||
-- 作者:zhuxinhui -- 发布时间:2019/3/6 20:42:00 -- 只能是字符才行,我试过把金额改成字符才可以,这个需怎样转换
|
||||
-- 作者:zhuxinhui -- 发布时间:2019/3/6 20:55:00 -- 修改了下,可以了,我再测试下先
|
||||
-- 作者:zhuxinhui -- 发布时间:2019/3/6 23:24:00 -- Dim Book As New XLS.Book("D:\\问题\\新建文件夹\\采购.xls") Dim Sheet As XLS.Sheet = Book.Sheets(0) For n As Integer = 1 To Sheet.Rows.Count -1 Dim dr As DataRow = DataTables("当月采购").Find("供应商 = \'" & gys & "\' and 单号=\'" & dh & "\' and 物料编码=\'" & bm & "\' and 数量=\'" & sl & "\'") End If 这段代码不知道哪里出问题了,表里有几行相同的数据,只有第一行可以引用,其他就不能引用了,刚开始以为数据不同,后来把顺序调整后才知:电子表的数据只能引用一次,现在表里如果有多行相同数据,怎样才能引用符合电子表条件的值 |
||||
-- 作者:有点甜 -- 发布时间:2019/3/7 9:04:00 -- Dim dr As DataRow = DataTables("当月采购").Find("供应商 = \'" & gys & "\' and 单号=\'" & dh & "\' and 物料编码=\'" & bm & "\' and 数量=\'" & sl & "\'")
改成
Dim dr As DataRow = nothing |