Foxtable(狐表)用户栏目专家坐堂 → 当从EXECL中一次性地复制多列数据到当前表中的时候


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

主题:当从EXECL中一次性地复制多列数据到当前表中的时候

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33957 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/6/28 2:00:00 [显示全部帖子]

我来练练手,水平有限代码较啰嗦。

 

Dim s As String = System.Windows.Forms.ClipBoard.GetText() '获取剪贴板中的数据
Dim s1 As String = s.Replace(chr(13) & chr(10),chr(9)) '将换行符和回车符替换为Tab符
Dim t As Table = CurrentTable
Dim Vals(),Vals1(),Vals2() As String
Vals = s1.split(chr(9)) '获取单元格个数
Vals1 = s.split(chr(13) & chr(10)) '获取剪贴板中行的数量
Dim i,c As Integer
For n As Integer = t.Position To t.Position + Vals1.Length - 2 '从焦点所在行开始循环,循环次数为剪贴板中行数减1
    c = 0
    For Each cl As Col In t.Cols
        If cl.Visible Then '排除隐藏列
            c = c + 1
            if c < Vals1(0).split(chr(9)).Length + 1 Then '如果被标记的列小于剪贴板中的列数
                if n < t.Rows.Count Then '如果当前表中还有行可以写入
                    if i <= Vals.Length - 1 Then '如果剪贴板中还有未写完的数据
                        t(n,cl.name) = Vals(i) '则写入数据
                        i = i + 1
                    End If
                End If
            End If
        End If
    Next
Next

 


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33957 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/6/28 12:35:00 [显示全部帖子]

以下是引用mr725在2010-6-28 12:18:00的发言:

C版的可以,只是都从第一列开始粘贴········

 

嗯,我只考虑了从焦点行开始,还真没考虑到从指定列开始粘贴。


 回到顶部