WPS JS宏注意事项
代码后面可以不写分号“ ; ”;
缩进对程序的运行影响不大,但为了易读(防止自己以后看不懂),还是乖乖写好;
代码是逐行运行的,意味着下面一行代码错了,前面的代码依然可以执行;
没有自动预编译,点击编译功能,也不会报错,只有运行时会报错;
如果在循环时,使用Var接收变量,在使用成员运算符时不会有代码提示;
同一时间,只能有一个工作表是激活状态;
如果不知道某些功能应使用哪些代码,最好用录制宏操作一遍,查看生成的代码,加以理解;
最好有一些高级编程语言的基础;
宏操作是不可以撤回的,执行前保存一下,执行后检查没问题,保存一下;
区域内容清除
箭头指向的图标用来调用宏
代码
/*** DeleteData_Sheet0 Macro* 宏由 xt_user_6 录制,时间: 2025/01/04* 用于删除一个范围内的内容*/
function DeleteData_Sheet0()
{//选中一个单元格范围,ClearContents清除内容Range("D2:D200").ClearContents();
}
只粘贴值
代码
/*** Sheet2CopyToSheet3 Macro* 宏由 xt_user_6 录制,时间: 2025/01/04* 将一个公式生成的数据结果复制到另一个表中,只粘贴值。*/
function Sheet2CopyToSheet3()
{//激活该sheet为活动工作表Sheets.Item("2.外协公式").Activate();//全选Cells.Select();//复制选择内容 如果某个单元格范围被定义(命名)应该会显示在里面Cells.Copy(undefined);//激活该sheet为活动工作表Sheets.Item("3.外援工时汇总表").Activate();//全选Cells.Select();//选择性粘贴 粘贴值 特殊粘贴:NONE 跳过空白 是否转换 Cells.PasteSpecial(xlPasteValues, xlPasteSpecialOperationNone, false, false);//粘贴完成后,显示声明关闭剪切板,防止程序BugApplication.CutCopyMode = false;//在最近使用文件中添加该文件路径,该代码对文档内容无操作Application.RecentFiles.Add("C:\\Users\\xt_user_6\\Desktop\\waterRPA3(自动点击)\\waterRPA\\电气二组1月3日.xlsm");//保存工作簿ActiveWorkbook.Save();
}
只粘贴值
这个是粘贴整个表,而不是其中一个区域。
/*** Sheet4CopyToSheet5 Macro* 宏由 xt_user_6 录制,时间: 2025/01/04* 将一个公式生成的表转化为纯文本表格(同上一功能一致)*/
function Sheet4CopyToSheet5()
{//全选Cells.Select();//冗余代码//Range("B1").Activate();//复制选中的单元格Cells.Copy(undefined);//激活目标工作表Sheets.Item("5.报工日报").Activate();//全选Cells.Select();//选择性粘贴 粘贴值 特殊粘贴:NONE 跳过空白 是否转换 Cells.PasteSpecial(xlPasteValues, xlPasteSpecialOperationNone, false, false);//粘贴完成后,显示声明关闭剪切板,防止程序BugApplication.CutCopyMode = false;//在最近使用文件中添加该文件路径,该代码对文档内容无操作Application.RecentFiles.Add("C:\\Users\\xt_user_6\\Desktop\\waterRPA3(自动点击)\\waterRPA\\电气二组1月3日.xlsm");//保存工作簿ActiveWorkbook.Save();
}
公式结果追加到一个汇总表中
将上图内容,追加到下图箭头处,自动判断页尾。
代码
/*** autoCompile Macro* 宏由 xt_user_6 录制,时间: 2025/01/04* 将表6的内容重新筛选,并复制到表7的末尾。*/
function autoCompile()
{//激活数据页Sheets.Item("6.报工明细").Activate();//重新应用过滤器ActiveSheet.AutoFilter.ApplyFilter();//复制选中内容Selection.Copy(undefined);//激活汇总页Sheets.Item("7.报工汇总").Activate();//将焦点移动到页首,防止下次使用时无法识别文件尾。Range("F1").Activate();//单元格Q1公式为// =COUNTA(F:F)+1//计算F列有多少行数据,+1 从而得出工作表的页尾。//获取Q1单元格的值,并转换成字符串 // 将焦点转移至页尾单元格Range("F"+Range("Q1").Value2.toString()).Activate();//复制到单元格中Selection.PasteSpecial(xlPasteValues, xlPasteSpecialOperationNone, false, false);//粘贴完成后,显示声明关闭剪切板,防止程序BugApplication.CutCopyMode = false;//在最近使用文件中添加该文件路径,该代码对文档内容无操作//Application.RecentFiles.Add("C:\\Users\\xt_user_6\\Desktop\\waterRPA3(自动点击)\\waterRPA\\电气二组1月3日.xlsm");//保存文件ActiveWorkbook.Save();
}
目前只用到这么多,后续再有再更新。