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


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

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

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/1 18:03:00 [显示全部帖子]

循环每一个字符,列出看结构

 

For Each s As String In ClipBoard.Gettext
    output.show(s & " " & asc(s))
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/2 8:44:00 [显示全部帖子]

改成

 

Dim nmas() As String = s.Split(chr(13))


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/2 9:39:00 [显示全部帖子]

复制后,直接执行

 

CurrentTable.EditPaste()

 

excel的复制,参考 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=104865&skin=0

 

 

[此贴子已经被作者于2018/7/2 9:39:49编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/2 18:33:00 [显示全部帖子]


Dim strArray As String() = Clipboard.GetText().TrimEnd(New Char() {vbCr, vbLf}).Split(New Char() {CurrentTable.grid.ClipSeparators(1)})
Dim selection = CurrentTable.grid.Selection
Dim num5 As Integer = strArray.Length - 1

For i As Integer = 0 To num5

    Dim num3 = selection.TopRow + i
    If num3 > CurrentTable.grid.Rows.Count - 1 Then
        Return Nothing
    End If
    Dim strArray2 As String() = strArray(i).Split(New Char() {CurrentTable.grid.ClipSeparators(0)})
    Dim num As Integer = selection.LeftCol - 1
    Dim num6 As Integer = strArray2.Length - 1

    For j As Integer = 0 To num6
        num+=1
        Do While (True)           
            If num > (CurrentTable.grid.Cols.Count - 1) Then
                Exit Do
            End If
            If (CurrentTable.grid.Cols(num).Visible) Then
                Exit Do
            End If
            num+=1
        Loop
        CurrentTable.grid(num3, num) = strArray2(j).Trim(new Char() { " ", chr(10), chr(13) })
    Next
Next


 回到顶部