Foxtable(狐表)用户栏目专家坐堂 → [求助]我在导入excel2010格式数据时出错,如何解决?


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

主题:[求助]我在导入excel2010格式数据时出错,如何解决?

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


加好友 发短信
等级:二尾狐 帖子:558 积分:5937 威望:0 精华:0 注册:2013/7/11 17:39:00
  发帖心情 Post By:2015/5/24 16:15:00 [只看该作者]

大红袍老师:帮看看这个代码哪里有问题,测试数据导不完整 
Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\工作台\350幅臂.xlsx")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim Rg As MSExcel.Range
Tables("汽车吊性能参数").StopRedraw()
Dim num As Integer=0
For c As Integer = 3 To 526
    For r As Integer = 6 To 40
        Rg = Ws.Cells(r,c)
        If isnumeric(rg.Value) Then
            Dim rw As Row = Tables("汽车吊性能参数").AddNew()
            rw("车型") = "SANY350-70"
            rw("工况类型")="副臂"
            rw("支腿")="全伸"
            Rg = Ws.Cells(2,c)
            rw("副臂长")=rg.Value
            Rg = Ws.Cells(3,c)
            rw("配重")=Rg.Value
            Rg = Ws.Cells(4,c)
            rw("副臂角度")=rg.Value
            Rg = Ws.Cells(5,c)
            rw("主臂长")=rg.Value
            Rg = Ws.Cells(r,2)
            rw("幅度")=rg.Value
            Rg = Ws.Cells(r,c)
            rw("起重量")=rg.Value
            Rg = Ws.Cells(47,c)
            rw("主臂组合")=rg.Value
            num=num+1
        Else
            Continue For
        End If
    Next
Next
Tables("汽车吊性能参数").ResumeRedraw()
MessageBox.Show("共成功导入" & num & "条数据!")
App.Quit

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


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

vba的行和列都是从1开始的,不是从0开始的。

 

你注意所有的数字都要加1


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


加好友 发短信
等级:二尾狐 帖子:558 积分:5937 威望:0 精华:0 注册:2013/7/11 17:39:00
  发帖心情 Post By:2015/5/24 16:24:00 [只看该作者]

这个我已经注意了,改过来了



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


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

 你的代码根本就没有改啊,行和列都要给啊。

 

 那你现在的问题是什么。


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


加好友 发短信
等级:二尾狐 帖子:558 积分:5937 威望:0 精华:0 注册:2013/7/11 17:39:00
  发帖心情 Post By:2015/5/24 16:27:00 [只看该作者]

以下是引用大红袍在2015/5/24 16:21:00的发言:

vba的行和列都是从1开始的,不是从0开始的。

 

你注意所有的数字都要加1


注要是导入后没反应,ft表一片空白,从新打开项目才能看到数据!


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


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

 如果是15楼的情况就是因为StopRedraw的原因,和代码无关。

 

 应该之后就正常了。


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


加好友 发短信
等级:二尾狐 帖子:558 积分:5937 威望:0 精华:0 注册:2013/7/11 17:39:00
  发帖心情 Post By:2015/5/24 16:45:00 [只看该作者]

是这个原因,但是效率不是很可观啊,速度比较慢!

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


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

 通过vba的cells获取数据的话,是很慢的,建议一次性取出所有数据,转换成二维数组,然后读取。

 

 参考 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=65686&skin=0

 

 也可以换一种思路

 

 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=52744&skin=0

 

 

下载信息  [文件大小:312.0 KB  下载次数:8]
图片点击可在新窗口打开查看点击浏览该文件:excel作为数据源_合并.table


 回到顶部
总数 18 上一页 1 2