Foxtable(狐表)用户栏目专家坐堂 → 复制粘贴数据很慢怎么解决


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

主题:复制粘贴数据很慢怎么解决

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


加好友 发短信
等级:九尾狐 帖子:2232 积分:15251 威望:0 精华:0 注册:2015/7/18 10:10:00
复制粘贴数据很慢怎么解决  发帖心情 Post By:2018/6/28 8:18:00 [只看该作者]

我现在有大约40万行数据需要复制到软件中,每行为25个数据,每粘贴一行大约需要2秒钟,40万行数据约需要10天时间,实在是太慢了,有没有更好的办法加快速度,软件是局域内数据能够自动更新的。

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


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

把你datacolchanged等事件的代码清空,再粘贴测试。

 

如果变快,就暂停事件触发 http://www.foxtable.com/webhelp/scr/2218.htm

 

[此贴子已经被作者于2018/6/28 8:40:58编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2232 积分:15251 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2018/6/28 9:15:00 [只看该作者]

 SystemReady = False
        Try
                      Dim dlg As New OpenFileDialog
            Dim Book As New XLS.Book(dlg.FileName)
            Dim Sheet As XLS.Sheet = Book.Sheets(0)
            Tables("商品采购明细").StopRedraw()
            '注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
            Dim nms() As String = {"日期","单位编号","单位名称","单据编号","单据摘要","单据类型","单据行号","商品编号","商品名称","单位","规格","剂型","经手人编号","经手人姓名","批号","生产日期","有效日期","采购数量","成本单价","成本金额"}
            '注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
            For n As Integer = 1 To Sheet.Rows.Count -1
                Dim r As Row = Tables("商品采购明细").AddNew()
                For m As Integer = 0 To nms.Length - 1
                    r(nms(m)) = Sheet(n,m).Value
                Next
            Next
            Tables("商品采购明细").ResumeRedraw()
            
            
            
            
            
            
        Catch ex As Exception
            MessageBox.Show("追加数据失败")
        End Try
        SystemReady = True

 

 

上述代码直接提示“追加数据失败”是什么原因?


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


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

加上红色代码,看报什么错

 

       Catch ex As Exception

msgbox(ex.message)
            MessageBox.Show("追加数据失败")
        End Try


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


加好友 发短信
等级:九尾狐 帖子:2232 积分:15251 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2018/6/28 9:28:00 [只看该作者]

提示“打开存储文件失败”

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


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

如果你的excel是xlsx格式,数据超过6万5千行,不能用xls.book打开,要用vba处理

 

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

 


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


加好友 发短信
等级:九尾狐 帖子:2232 积分:15251 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2018/6/30 10:43:00 [只看该作者]

执行大量数据操作时,设置一个按钮手动暂停所有代码,待完成时再手动启动所有代码,可以吗?


 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105924 积分:538683 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/6/30 10:48:00 [只看该作者]

SystemReady=false可以停止所有事件的触发

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


加好友 发短信
等级:九尾狐 帖子:2232 积分:15251 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2018/6/30 10:49:00 [只看该作者]

想恢复启动的时候按按钮还可以使用吗?

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105924 积分:538683 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/6/30 10:51:00 [只看该作者]

恢复就是SystemReady=true咯

 回到顶部
总数 48 1 2 3 4 5 下一页