以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助复制数据到剪贴板中包括标题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=8473)

--  作者:migold
--  发布时间:2010/10/31 9:20:00
--  求助复制数据到剪贴板中包括标题

如题!

 

 


--  作者:czy
--  发布时间:2010/10/31 9:47:00
--  
这个只能自己写代码了,论坛有类似的代码(我忘了是什么标题,没搜到)
--  作者:czy
--  发布时间:2010/10/31 20:58:00
--  

这样应该差不多了。

 

 

Dim v,v1,v2 As String
With CurrentTable
    For i As Integer = .LeftCol To .RightCol
        v2 = v2 & chr(9) & .Cols(i).Caption
    Next
    For r As Integer = .TopPosition To .BottomPosition
        v1 = ""
        For c As Integer = .LeftCol To .RightCol
            If .Cols(c).Visible Then
                If .Rows(r).IsNull(c) Then
                    v1 = v1 & chr(9) & ""
                Else
                    v1 = v1 & chr(9) & .Rows(r)(c).ToString
                End If
            End If
        Next
        v = v & v1.Trim(chr(9)) & chr(13)
    Next
End With
ClipBoard.SetText(v2.Trim(chr(9)) & chr(13) & v.Trim(chr(13)))


--  作者:czy
--  发布时间:2010/10/31 23:35:00
--  

楼上的代码处理不够严谨,如果复制多列,多行,当一行中只有某个或某几个单元格有数据时,粘贴时会产生数据错位挤堆现象,更正如下。

 

 

Dim v,v1,v2 As String
With CurrentTable
    For i As Integer = .LeftCol To .RightCol
        v2 = v2 & chr(9) & .Cols(i).Caption
    Next
    For r As Integer = .TopPosition To .BottomPosition
        v1 = ""
        For c As Integer = .LeftCol To .RightCol
            If .Cols(c).Visible Then
                If .Rows(r).IsNull(c) Then
                    v1 = v1 & chr(9) & .ToString
                Else
                    v1 = v1 & chr(9) & .Rows(r)(c).ToString
                End If
            End If
        Next
        v = v & v1.Trim(chr(9)) & chr(13)
    Next
End With
ClipBoard.SetText(v2.Trim(chr(9)) & chr(13) & v.Trim(chr(13)).Replace("Foxtable.Table",""))


--  作者:czy
--  发布时间:2010/10/31 23:39:00
--  

说明,楼上的代码是排除隐藏列的,如果需要复制隐藏列的数据,可以将下面的if判断删除

 

If .Cols(c).Visible Then


End If

 


--  作者:kylin
--  发布时间:2010/11/1 11:20:00
--  
以下是引用czy在2010-10-31 9:47:00的发言:
这个只能自己写代码了,论坛有类似的代码(我忘了是什么标题,没搜到)

建议老六编写一个菜单“复制包括标题”,在SQL Server当中也有“复制”(普通的不带标题)和“复制包括标题”这2个菜单的,这2个菜单的通用性很强的。

[此贴子已经被作者于2010-11-1 11:20:50编辑过]

--  作者:狐狸爸爸
--  发布时间:2010/11/1 11:37:00
--  
以下是引用kylin在2010-11-1 11:20:00的发言:

建议老六编写一个菜单“复制包括标题”,在SQL Server当中也有“复制”(普通的不带标题)和“复制包括标题”这2个菜单的,这2个菜单的通用性很强的。

[此贴子已经被作者于2010-11-1 11:20:50编辑过]

 

呵呵,有道理,我会考虑的


--  作者:migold
--  发布时间:2010/11/1 12:01:00
--  

谢谢CZY楼主

 

强烈建议狐表里面直接增加两个功能:

(1)复制带上标题

(2)粘贴区分标题

 


--  作者:czy
--  发布时间:2010/11/1 15:05:00
--  
感觉这些属于个性化的东西,通用性强的功能可以加上,否则自己写代码也无妨。
--  作者:migold
--  发布时间:2010/11/2 10:25:00
--  

CZY楼主,麻烦你再写一个“粘贴区分标题”按钮功能。我写出来的代码太长。