Foxtable(狐表)用户栏目专家坐堂 → [求助]导入excel某些列出错。


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

主题:[求助]导入excel某些列出错。

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
[求助]导入excel某些列出错。  发帖心情 Post By:2016/5/9 11:22:00 [只看该作者]

msgbox(11)-----------弹出了11
Dim Book As New XLS.Book("D:\计划.xls")
msgbox(12)----没有弹出12,却爆出了未将对象引用设置到对象的实例。这是怎么回事?最起码也应该弹出12吧。
Dim Sheet As XLS.Sheet = Book.Sheets(0)
msgbox(13)

Tables("计划表").StopRedraw()
'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
msgbox(0)
Dim nms() As String = {"生产订单号码","工单行号","物料编码","物料名称","类别说明","部门名称","开工日期","完工日期","生产订单数量","入库数量","完成数量","产品批次","工单状态","订单号","订单行号","客户","备注","软件版本","料况追踪","基板","周需求交期","合同约定交期","生产反馈","修改标记"}
'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim scddhm As String = sheet(n,1).Text
    Dim gdhh As String = sheet(n,2).text
msgbox(1)
    If DataTables("计划表").Find("生产订单号码 = '" & scddhm & "' and 工单行号 = '" & gdhh & "'") Is Nothing Then '如果不存在同编号的计划表
        Dim r As Row = Tables("计划表").AddNew()
        For m As Integer = 0 To nms.Length - 1
            r(nms(m)) = Sheet(n,m).Value
        Next
    End If
Next
Tables("计划表").ResumeRedraw()
Tables("计划表").save
msgbox("导入完成")

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/9 11:31:00 [只看该作者]

不,可,能。上传你excel文件测试一下。

 

或者,你换一个文件或换一台电脑测试。


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/5/9 11:36:00 [只看该作者]

我觉得也是不可能的啊。
这是execl。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:计划.rar



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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/9 11:54:00 [只看该作者]

 你excel文件有问题,你要打开后保存一次。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/9 11:55:00 [只看该作者]

或者是用vba打开

 

msgbox(11)
Dim App As New MSExcel.Application
App.Visible = True
Dim Wb As MSExcel.Workbook = App.WorkBooks.Open("D:\计划.xls")
msgbox(12)


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/5/9 12:00:00 [只看该作者]

是另存为execl文件?这么做了还是报同样的错


图片点击可在新窗口打开查看此主题相关图片如下:另存为excel文件.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/9 12:01:00 [只看该作者]

打开保存一下,看4、5楼,我测试没问题

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/5/9 12:04:00 [只看该作者]

msgbox(11)
Dim App As New MSExcel.Application
App.Visible = True
Dim Wb As MSExcel.Workbook = App.WorkBooks.Open("D:\计划.xls")
msgbox(12)

采用这样的话,提示未申明sheet。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/9 12:05:00 [只看该作者]


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/5/9 15:13:00 [只看该作者]

这么写对不对?
Dim App As New MSExcel.Application
App.Visible = True
Dim Wb As MSExcel.Workbook = App.WorkBooks.Open("D:\计划-0506.xls")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)

Tables("计划表").StopRedraw()
'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
msgbox(0)
Dim nms() As String = {"生产订单号码","工单行号","物料编码","物料名称","类别说明","部门名称","开工日期","完工日期","生产订单数量","入库数量","完成数量","产品批次","工单状态","订单号","订单行号","客户","备注","软件版本","料况追踪","基板","周需求交期","合同约定交期","生产反馈","修改标记"}
'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 1 To ws.Rows.Count -1
    Dim scddhm As String = ws.range(n,1).Text
    Dim gdhh As String = ws.range(n,2).text
msgbox(1)
    If DataTables("计划表").Find("生产订单号码 = '" & scddhm & "' and 工单行号 = '" & gdhh & "'") Is Nothing Then '如果不存在同编号的计划表
        Dim r As Row = Tables("计划表").AddNew()
        For m As Integer = 0 To nms.Length - 1
            r(nms(m)) = ws.range(n,m).Value
        Next
    End If
Next
Tables("计划表").ResumeRedraw()
Tables("计划表").save
msgbox("导入完成")

 回到顶部
总数 14 1 2 下一页