Foxtable(狐表)用户栏目专家坐堂 → 从EXCEL中复制数据时的问题


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

主题:从EXCEL中复制数据时的问题

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


加好友 发短信
等级:童狐 帖子:238 积分:1943 威望:0 精华:0 注册:2016/1/11 8:40:00
从EXCEL中复制数据时的问题  发帖心情 Post By:2018/4/2 13:26:00 [只看该作者]

各位专家们:您们好!

       将EXCEL表格中的数据信息复制如FOXTABLE中时,如何处理在EXCEL单元格中使用了回车换行的数据?因为这类单元格的数据在粘贴到FOXTABLE中时,它会不在1个单元格中,每一个回车换行都自动另起了一行,被放到了多个行的单元格中。谢谢!


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/2 14:24: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


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


加好友 发短信
等级:童狐 帖子:238 积分:1943 威望:0 精华:0 注册:2016/1/11 8:40:00
  发帖心情 Post By:2018/4/3 14:58:00 [只看该作者]

以下是引用有点甜在2018/4/2 14:24: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

 

 

请问是Keydown事件还是KeydowmEdit事件?我没有找到Keydown事件。


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


加好友 发短信
等级:童狐 帖子:238 积分:1943 威望:0 精华:0 注册:2016/1/11 8:40:00
找到了,搞定  发帖心情 Post By:2018/4/3 15:11:00 [只看该作者]

找到了,搞定


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


加好友 发短信
等级:童狐 帖子:238 积分:1943 威望:0 精华:0 注册:2016/1/11 8:40:00
复制时有一列遇到了新问题  发帖心情 Post By:2018/4/4 10:23:00 [只看该作者]

专家:您好!

使用上面的代码复制时,又出现了1个新问题,就是在复制“评论信息”这一列时提示了错误:

我的“评论信息”列单元格内的信息如下:

 


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20180404102007.png
图片点击可在新窗口打开查看

 

复制时FOXTABLE提示的提示如下:

 


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20180404100333.png
图片点击可在新窗口打开查看

请问还要如何修改代码才能解决这个问题。谢谢!


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


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

1、excel文件发上来测试;

 

2、贴出你keydown的事件代码。


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


加好友 发短信
等级:童狐 帖子:238 积分:1943 威望:0 精华:0 注册:2016/1/11 8:40:00
  发帖心情 Post By:2018/4/4 10:51:00 [只看该作者]

以下是引用有点甜在2018/4/4 10:28:00的发言:

1、excel文件发上来测试;

 

2、贴出你keydown的事件代码。

我的EXCEL文件如下:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:report交样汇报.xls

KEYDOWN的事件代码为:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新建文本文档1.txt


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


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

改成这样

 

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
            End If
            If i = str.length-1 OrElse str(i+1) = chr(9) OrElse str(i+1) = chr(10) 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
    msgbox(nstr)
    ClipBoard.SetText(nstr)
End If


 回到顶部