Foxtable(狐表)用户栏目专家坐堂 → 复制粘贴数据


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

主题:复制粘贴数据

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


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

做个例子发上来测试。

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


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

以下是引用18631154510在2018/10/11 14:32:00的发言:

我是把过去在试用版做的表的内容复制粘贴到新做的项目内,原来是1235条,复制粘贴后有几列数值变多了。

 

1、你【表事件】是不是有什么代码影响?不然,不会有这种情况的。

 

2、如果你不会排查,做个实例发上来测试。


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


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

以下是引用18631154510在2018/10/11 15:32: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


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


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

以下是引用18631154510在2018/10/11 15:49:00的发言:

不管用,还是那样

 

具体数据发上来测试。


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


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

keydown事件,改成

 


ClipBoard.SetText(ClipBoard.GetText.replace(vbcrlf, Chr(10)))

 


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


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

以下是引用18631154510在2018/10/11 16:47:00的发言:

可以,只是复制后格式变化了

 

复制完成以后,把chr(10)改成vbcrlf即可。

 

For Each r As Row In Tables("表A").rows
    r("第三列") = r("第三列").replace(chr(13), "").replace(chr(10), vbcrlf)
Next


 回到顶部