如何使用Office Scripts将Excel中一列数据复制到另一列?
Office Scripts 复制列数据解决方案
情况1:普通单元格区域(非结构化表格)
如果你的数据是普通单元格区域(表头在第1行,数据从第2行开始),可以用以下代码复制D列(Date)到F列(New_Date):
function main(workbook: ExcelScript.Workbook) { // 获取当前活动工作表,也可以指定名称,比如 workbook.getWorksheet("你的工作表名") const sheet = workbook.getActiveWorksheet(); const lastRow = sheet.getUsedRange().getLastRow(); // 源范围:D列数据行(跳过表头D1) const sourceRange = sheet.getRange(`D2:D${lastRow}`); // 目标范围:F列对应行 const targetRange = sheet.getRange(`F2:F${lastRow}`); // 仅复制值 targetRange.setValues(sourceRange.getValues()); // 如果需要复制格式(包括日期格式),替换上面的setValues为下面一行: // targetRange.copyFrom(sourceRange, ExcelScript.RangeCopyType.all); }
情况2:Excel结构化表格(ListObject)
如果你的数据是Excel内置的结构化表格,用表格列名称操作更稳定,无需担心行号变化:
function main(workbook: ExcelScript.Workbook) { // 替换为你的表格实际名称(可在Excel表格设计选项卡查看) const table = workbook.getTable("Table1"); // 获取Date列的数据范围(跳过表头) const sourceColumn = table.getColumn("Date").getRangeBetweenHeaderAndTotal(); // 获取New_Date列的目标范围 const targetColumn = table.getColumn("New_Date").getRangeBetweenHeaderAndTotal(); // 仅复制值 targetColumn.setValues(sourceColumn.getValues()); // 如需复制格式,替换为: // targetColumn.copyFrom(sourceColumn, ExcelScript.RangeCopyType.all); }
使用说明
- 打开Excel,进入「自动化」选项卡,点击「新建脚本」,粘贴对应代码。
- 根据你的实际数据结构(普通区域/表格)选择代码,替换工作表或表格名称。
- 运行脚本即可完成复制。
内容的提问来源于stack exchange,提问作者Kavinda_404
相关产品推荐
相关产品推荐

