以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 复制粘贴EXCEL单元格,每粘贴一行,单元格内有几行(单元格内换行)会多出来几行空行是什么原因? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=111191) |
||||
-- 作者:chengjingliang -- 发布时间:2017/12/17 10:48:00 -- 复制粘贴EXCEL单元格,每粘贴一行,单元格内有几行(单元格内换行)会多出来几行空行是什么原因? 1、复制粘贴EXCEL单元格,每粘贴一行,单元格内有几行(单元格内换行)会多出来几行空行是什么原因?如何修改代码? 工程项目下的清单表,在项目东南西北内,复制粘贴EXCEL表单元格到清单后,1、出现双引号;2、自动添加4行空白行。 2、复制粘贴EXCEL单元格,用代码解决EXCEL单元格内有换行问题,如何去掉双引号呢?
\'粘贴带有换行的EXCEL单元格 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)
ClipBoard.SetText(nstr.trim("""")) End If |
||||
-- 作者:有点甜 -- 发布时间:2017/12/17 20:08:00 -- 1、测试的excel文件发上来。
2、具体说明赋值哪些数据,粘贴到哪些列出问题。截图说明。 |
||||
-- 作者:chengjingliang -- 发布时间:2017/12/17 21:52:00 -- 复制EXCEL表第一行数据,粘贴到工程项目“东西南北”的清单子表中,粘贴后增加4行空行,且粘贴数据有双引号 1、粘贴前 2、粘贴后 3、EXCEL表
|
||||
-- 作者:有点甜 -- 发布时间:2017/12/17 23:30:00 -- \' |
||||
-- 作者:chengjingliang -- 发布时间:2017/12/18 8:03:00 -- 会多出来几行空行是什么原因? 好修改吗?是不是和前面粘贴多行有关系? \'粘贴多行 Dim t As Table = e.Table If e.Control = True AndAlso t.Current IsNot Nothing Then Dim r As Integer = t.RowSel If e.KeyCode = keys.V Then Dim str As String = ClipBoard.GetText Dim nr As Integer = str.Replace(vblf,"").Trim(vbcr).Split(vbcr).Length + (t.RowSel) - t.Rows.Count If nr > 0 Then t.AddNew(nr) t.Select(r,t.ColSel) End If End If End If \' \' \'粘贴带有换行的EXCEL单元格 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.replace("""", "")) str = ClipBoard.GetText Dim nr As Integer = str.Replace(vblf,"").Trim(vbcr).Split(vbcr).Length + (e.Table.RowSel) - e.Table.Rows.Count Dim k = e.Table.Rowsel Dim j = e.Table.Colsel If nr > 0 Then e.Table.AddNew(nr) e.Table.Select(k, J) End If End If [此贴子已经被作者于2017/12/18 8:07:04编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2017/12/18 8:47:00 -- 删除你前面的代码就可以了。keydown事件,只写4楼的代码即可。 |
||||
-- 作者:chengjingliang -- 发布时间:2017/12/18 13:10:00 -- 感谢老师不厌其烦地指教! ![]() |