以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  复制上一行数据  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=23883)

--  作者:hawkerwin
--  发布时间:2012/9/22 17:16:00
--  复制上一行数据
需要选中下一行的时候按快捷键自动复制上一行对应列的数据,写了两种方法:
方法1:
Dim dr As Row = CurrentTable.Current
With CurrentTable
    If dr.Index >= 1 Then
        For Each dr1 As Row In CurrentTable.Rows
            If dr1.Index =dr.Index-1 Then
                dr(.ColSel)=dr1(.Colsel)
            End If
        Next
    End If
End With


方法2:
Dim dr As Row = CurrentTable.Current
Dim dr1 As Row
With CurrentTable
if  .Position>=1 then
    .Position = .position -1
    dr1 =CurrentTable.Current
    dr(.colsel)=dr1(.colsel)
    .Position = .position +1
end if
End With
但是都只能针对单独的单元格,如果需要在第二行选择多个单元格的时候也能自动复制第一行的对应列数据需要怎么写代码?

--  作者:lin_hailun
--  发布时间:2012/9/22 17:37:00
--  
 这样写,自己加一个判断

Dim pre_row As Row = CurrentTable.Rows(CurrentTable.Current.Index - 1)
Dim curr_row As Row = CurrentTable.Current
For i As Integer = CurrentTable.LeftCol To CurrentTable.RightCol
    curr_row(i) = pre_row(i)
Next

--  作者:hawkerwin
--  发布时间:2012/9/22 19:03:00
--  
谢谢 lin_hailun

问题解决了,原来可以CurrentTable.Rows(CurrentTable.Current.Index - 1) 这样直接定义上一行,我弄个了半天搞太复杂了 ,还得认真学习啊