以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  复制粘贴数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=125987)

--  作者:18631154510
--  发布时间:2018/10/11 14:00:00
--  复制粘贴数据
将一个表某列的数据复制到另一个表之后,本来是1200行,为什么粘贴过去后多出来10多行?
--  作者:有点甜
--  发布时间:2018/10/11 14:24:00
--  
做个例子发上来测试。
--  作者:18631154510
--  发布时间:2018/10/11 14:32:00
--  

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

原因找到了,只要有回车的,复制粘贴后就默认到下一行。但是不知道怎么解决,一个一个去找再删掉非常的麻烦

[此贴子已经被作者于2018/10/11 14:55:52编辑过]

--  作者:有点甜
--  发布时间:2018/10/11 14:53:00
--  
以下是引用18631154510在2018/10/11 14:32:00的发言:

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

 

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

 

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


--  作者:18631154510
--  发布时间:2018/10/11 15:32:00
--  

只要包含回车换行的单元格,复制粘贴后都会生成多个单元格。不知道怎么解决这个问题


--  作者:有点甜
--  发布时间: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


--  作者:18631154510
--  发布时间:2018/10/11 15:49:00
--  

不管用,还是那样


--  作者:有点甜
--  发布时间:2018/10/11 15:50:00
--  
以下是引用18631154510在2018/10/11 15:49:00的发言:

不管用,还是那样

 

具体数据发上来测试。


--  作者:有点甜
--  发布时间:2018/10/11 16:01:00
--  

keydown事件,改成

 


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

 


--  作者:18631154510
--  发布时间:2018/10/11 16:47:00
--  

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