当前位置: 首页 > news >正文

WPS宏实现对表格选中区域数据进行遍历读取及动态赋值

VBA中好像可以直接用forEach进行遍历,JS宏中有对数组的forEach方法,我没试出来。现在做的这一版是用双重FOR循环组合完成的,赋值用的是Formula属性,这个可以写公式。

function JIn()
{
 //1、作用于Sheet1页
 Application.Worksheets.Item('Sheet1').Activate();
 //2、获取当前选中区域的首行和首列
 var a = ActiveCell.Cells.Row;
 var b = ActiveCell.Cells.Column;

 //3、获取当前选中区域有多少行和多少列
 var c =Selection.Cells.Address();
 var d = Range(c).Columns.Count;
 var e = Range(c).Rows.Count;

 //4、选中区域的列号放进数组
  var arrcol = new Array();
  for(var i = 1 ; i <= d ; i++){
   arrcol[i-1]=b-1+i;
  }
 
  //5、选中区域的行号放进数组
  var arrow = new Array();
  for(var j = 1 ; j <= e ; j++){
   arrow[j-1]=a-1+j;
  }

  //6、双重FOR循环组装行列号
  for (let y = 0; y < arrcol.length; y++) {
  for (let x = 0; x < arrow.length; x++) {

    //选中区域读取
    var f = Sheets("Sheet1").Cells.Item(arrow[x],arrcol[y]).Value2;
    //console.log("选中区域的值:"+f);
    //选中区域后22列及前9列单元格的地址
    var g =Sheets("Sheet1").Cells.Item(arrow[x],arrcol[y]+22).Address();
    var h =Sheets("Sheet1").Cells.Item(arrow[x],arrcol[y]-10).Address();
    //console.log("选中区域的地址:"+h);
    //选中区域赋值
    Sheets("Sheet1").Cells.Item(arrow[x],arrcol[y]).Formula='=IF('+h+'<>"",'+g+',"")';
}
}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • vs2022 开发vue带后端
  • 代码整洁之道-如何写好注释
  • 在Kylin服务器安装PostgreSQL16数据库
  • 【深度学习|目标跟踪】快速入门卡尔曼滤波!
  • 笔记本CPU天梯图(2024年8月),含AMD/骁龙等新CPU
  • 北京青蓝智慧科技:160个项目通过“数据要素×”大赛湖北分赛初赛
  • uniapp 开发公众号 h5(openid,微信支付,订阅通知)
  • C++ -- 负载均衡式在线OJ (一)
  • 大模型 - 分布式训练方法汇总
  • SQL-锁
  • 【算法】最短路径算法思路小结
  • C#中Override与New关键字的运用及实例解析
  • c# 什么是扩展方法
  • Oracle-OracleConnector
  • Linux应用层开发(7):网络编程
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • @angular/forms 源码解析之双向绑定
  • Asm.js的简单介绍
  • express如何解决request entity too large问题
  • java2019面试题北京
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Nodejs和JavaWeb协助开发
  • passportjs 源码分析
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • use Google search engine
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 给第三方使用接口的 URL 签名实现
  • 记录:CentOS7.2配置LNMP环境记录
  • 普通函数和构造函数的区别
  • 浅谈Golang中select的用法
  • 如何实现 font-size 的响应式
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​卜东波研究员:高观点下的少儿计算思维
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #define 用法
  • #NOIP 2014# day.1 T2 联合权值
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • ${ }的特别功能
  • (175)FPGA门控时钟技术
  • (9)目标检测_SSD的原理
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (贪心) LeetCode 45. 跳跃游戏 II
  • (一)基于IDEA的JAVA基础1
  • (杂交版)植物大战僵尸
  • (转)Windows2003安全设置/维护
  • (转载)CentOS查看系统信息|CentOS查看命令
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net core 控制台应用程序读取配置文件app.config
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET Micro Framework初体验(二)
  • .Net Redis的秒杀Dome和异步执行
  • .NET 反射的使用