ALLUN304317 2022-03-23 20:45 采纳率: 100%
浏览 64
已结题

如何在电子表格中通过编程实现被标红的字母与其它没有被标红的字母随机上下左右移动,注意标红的字母不会因为重新计算而消失。

如何在电子表格中通过编程实现被标红的字母与其它没有被标红的字母随机上下左右移动,注意标红的字母不会因为重新计算而消失,即红颜色要跟着字母一起移动。

img

  • 写回答

7条回答 默认 最新

  • 歇歇 2022-03-24 02:28
    关注

    首先,获取单元格的使用范围
    maxRow=Excel.WorkSheet.UserRange.Row.Count
    maxCoL=Excel.WorkSheet.UserRange.Column.Count
    其次,用两个(分别代表行和列)不大于使用范围(maxRow,maxCoL)的随机数,取得一个随机单元格。
    RandRow=rand()*maxRow
    RandCol=rand()*maxCoL
    先判断是否边缘:RandRow=1或者=maxRow
    RandRow=1与下面单元格做交换,
    RandRow=maxRow与上面单元格做交换,
    1>RandRow>maxRow用一个随机奇偶数判断与上还是下交换

    取得当前单元格
    VarObjectCell1=Excel.WorkSheet.Cells(RandRow, RandCol)
    如果和下面做交换
    RandRow=RandRow+1
    如果和上面做交换
    RandRow=RandRow-1
    获取要交换的单元格
    VarObjectCell2=Excel.WorkSheet.Cells(RandRow, RandCol)
    获取字体颜色
    VarIndexColor1=VarObjectCell1.Font.ColorIndex
    VarIndexColor2=VarObjectCell2.Font.ColorIndex
    获取值
    VarValue1=VarObjectCell1.value
    VarValue2=VarObjectCell2.value
    交换
    VarObjectCell2.value=VarValue1
    VarObjectCell2.Font.ColorIndex =VarIndexColor1
    VarObjectCell1.value=VarValue2
    VarObjectCell1.Font.ColorIndex =VarIndexColor2

    望采纳

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

问题事件

  • 系统已结题 4月1日
  • 已采纳回答 3月24日
  • 创建了问题 3月23日

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置