请求编写Office Script实现行从US Counties复制到RSR工作表
解决方案:Office Script实现行数据映射复制到指定工作表
核心脚本代码
以下Office Script可实现需求,按照指定列映射关系将US Counties工作表目标行的数据复制到RSR工作表的新行:
function main(workbook: ExcelScript.Workbook) { // 获取目标工作表 const usCountiesSheet = workbook.getWorksheet("US Counties"); const rsrSheet = workbook.getWorksheet("RSR"); if (!usCountiesSheet || !rsrSheet) { throw new Error("未找到指定工作表,请确认名称是否正确"); } // 获取当前按钮所在行(基于选中单元格定位) const currentCell = workbook.getSelectedRange(); const targetRowNum = currentCell.getRowIndex() + 1; // 转换为Excel 1索引行号 // 定义列映射:RSR列 → US Counties列 const columnMapping: { [key: string]: string } = { "A": "A", "B": "B", "I": "G", "J": "H", "K": "L", "L": "M", "M": "N", "V": "P", "W": "Q", "X": "R", "Y": "S", "Z": "T", "AA": "U", "AB": "V", "AC": "W", "AD": "X", "AE": "Y", "AF": "Z", "AG": "AA", "AH": "AB", "AI": "AC", "AJ": "AD" }; // 确定RSR工作表的新行位置 const rsrUsedRange = rsrSheet.getUsedRange(); const rsrNewRowNum = rsrUsedRange ? rsrUsedRange.getLastRow().getRowIndex() + 2 : 2; // 遍历映射关系,复制对应列数据 for (const rsrCol in columnMapping) { const usCol = columnMapping[rsrCol]; const sourceValue = usCountiesSheet.getRange(`${usCol}${targetRowNum}`).getValue(); rsrSheet.getRange(`${rsrCol}${rsrNewRowNum}`).setValue(sourceValue); } // 可选:标记当前行已完成转化 usCountiesSheet.getRange(`O${targetRowNum}`).setValue("已转化"); console.log("数据已成功复制到RSR工作表"); }
使用步骤
- 打开SharePoint上的共享Excel工作簿,切换到
US Counties工作表 - 点击顶部菜单栏自动化→新建脚本,将上述代码粘贴到编辑器,保存脚本(命名为
ConvertToRSR) - 为O列添加触发按钮:
- 点击插入→形状,选择矩形等按钮形状,绘制在目标行的O列单元格内
- 右键点击形状,选择分配脚本,选中刚保存的
ConvertToRSR - 可批量复制已绑定脚本的按钮到其他需要的行
- 当某条外联转化为销售线索时,点击对应行O列的按钮,即可自动完成数据复制
注意事项
- 确保工作表名称与脚本中的
"US Counties"、"RSR"完全一致(区分大小写) - 共享工作簿使用Office Script需确保所有用户具备脚本运行权限,且工作簿已保存到SharePoint/OneDrive
内容的提问来源于stack exchange,提问作者ThisCluelessGuy
相关产品推荐
相关产品推荐

