Foxtable(狐表)用户栏目专家坐堂 → Excel单元格复制过来时变成好几个单元格


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

主题:Excel单元格复制过来时变成好几个单元格

帅哥哟,离线,有人找我吗?
君子性非异也
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:26 积分:284 威望:0 精华:0 注册:2017/7/29 17:43:00
Excel单元格复制过来时变成好几个单元格  发帖心情 Post By:2017/8/7 12:03:00 [只看该作者]

从Excel复制信息到自建foxtable表中时,出现了一个单元格,在Excel当中是一个,在foxtable却占用了好几个,这样就错位了。只有一个单元格这样,其他很正常。

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


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


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


加好友 发短信
等级:婴狐 帖子:26 积分:284 威望:0 精华:0 注册:2017/7/29 17:43:00
  发帖心情 Post By:2017/8/7 15:21:00 [只看该作者]

具体怎么使用?代码贴在哪儿运行?

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


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

做一个按钮,放入下面的代码。

 

然后,复制你excel的内容后,点击一下按钮,再粘贴。

 

Dim str As String = ClipBoard.GetText
Dim nstr As String = ""
Dim tempstr As String = ""
Dim flag As Boolean = False
For i As Integer = 0 To str.length - 1
    If str(i) = """" Then
        If i = 0 OrElse str(i-1) = chr(9) OrElse str(i-1) = chr(10) Then '开始
            flag = True
        ElseIf i = str.length-1 OrElse str(i+1) = chr(9) OrElse str(i+1) = chr(13) Then '结束
            tempstr = tempstr.Replace(chr(13), "")
            nstr &= tempstr
            tempstr = ""
            flag = False
        End If
    End If
    If flag = True Then
        tempstr &= str(i)
    Else
        nstr &= str(i)
    End If
Next
ClipBoard.SetText(nstr)


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


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

或者是,你可以把代码写到表格的keydown事件去。但代码要对应改一下

 

If e.control = True AndAlso e.keycode = keys.v Then
    Dim str As String = ClipBoard.GetText
    Dim nstr As String = ""
    Dim tempstr As String = ""
    Dim flag As Boolean = False
    For i As Integer = 0 To str.length - 1
        If str(i) = """" Then
            If i = 0 OrElse str(i-1) = chr(9) OrElse str(i-1) = chr(10) Then '开始
                flag = True
            ElseIf i = str.length-1 OrElse str(i+1) = chr(9) OrElse str(i+1) = chr(13) Then '结束
                tempstr = tempstr.Replace(chr(13), "")
                nstr &= tempstr
                tempstr = ""
                flag = False
            End If
        End If
        If flag = True Then
            tempstr &= str(i)
        Else
            nstr &= str(i)
        End If
    Next
    ClipBoard.SetText(nstr)
End If


 回到顶部