Foxtable(狐表)用户栏目专家坐堂 → [求助]选定单元格能连续左移和右移


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

主题:[求助]选定单元格能连续左移和右移

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/5/30 21:40:00 [显示全部帖子]

左移
dim t as table = tables("表A")
dim r as row = t.current
dim n as integer = t.colsel
dim c as col = t.cols(n)
if c.name like "*专业_*" andalso not(c.name like "第一专业_*") then
if c.name like "*_专业名称" then
n = n -1
c = t.cols(n)
end if
dim s1 as string = r(n-2)
dim s2 as string = r(n-1)
r(n-2) = r(n)
r(n-1) = r(n+1)
r(n) = s1
r(n+1) = s2
end if

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/5/31 8:49:00 [显示全部帖子]

以下是引用tygzjsl在2024/5/31 8:36:00的发言:
非常感谢老师,那么右移怎么改,全指望你啦图片点击可在新窗口打开查看
左移的说明
dim t as table = tables("表A")
dim r as row = t.current
dim n as integer = t.colsel
dim c as col = t.cols(n)
if c.name like "*专业_*" andalso not(c.name like "第六专业_*") then 判断选中的是不是专业单元格
if c.name like "*_专业名称" then 如果选中列的是专业名称
n = n -1 定位到代码单元格
c = t.cols(n)
end if
这里开始互换位置
dim s1 as string = r(n-2) 上一个专业的代码
dim s2 as string = r(n-1) 上一个专业的专业名称
r(n-2) = r(n) 左移代码
r(n-1) = r(n+1) 左移专业名称
r(n) = s1 上一个专业代码右移
r(n+1) = s2 上一个专业名称右移
end if

根据上面说明,参照下图,自己思考右移应该怎么改

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

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/5/31 8:51:00 [显示全部帖子]

以下是引用tygzjsl在2024/5/31 8:38:00的发言:
然后老师你在帮我看一下这个呗

要把选定行除批次和序号这两列外其它列内容能连续上移或下移(上移按钮和下移按钮事件),这个怎么改图片点击可在新窗口打开查看

参考:http://www.foxtable.com/webhelp/topics/1793.htm

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/5/31 9:27:00 [显示全部帖子]

那就只能使用4楼的用法,这个用法有啥问题?

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/5/31 10:16:00 [显示全部帖子]

比如除了第一列,其它都移动,可以这样

If cr IsNot Nothing AndAlso cr.Index < Tables("表A").Rows.Count - 1 Then
    Dim nr As Row = Tables("表A").Rows(cr.Index + 1)
    For Each c As col In Tables("表A").cols
if c.name <> "第一列"
        Dim temp As String = nr(c.name)
        nr(c.name) = cr(c.name)
        cr(c.name) = temp
end if
    Next
End If

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/5/31 10:43:00 [显示全部帖子]

移2次,就点2次按钮不就行了

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/5/31 11:14:00 [显示全部帖子]

If cr IsNot Nothing AndAlso cr.Index < Tables("表A").Rows.Count - 1 Then
    Dim nr As Row = Tables("表A").Rows(cr.Index + 1)
    For Each c As col In Tables("表A").cols
if c.name <> "第一列"
        Dim temp As String = nr(c.name)
        nr(c.name) = cr(c.name)
        cr(c.name) = temp
end if
    Next
Tables("表A").position = cr.Index + 1
End If

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/5/31 11:33:00 [显示全部帖子]


 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/5/31 13:27:00 [显示全部帖子]

Tables("表A").select(r.index, n+2)

 回到顶部