You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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);
}

使用说明

  1. 打开Excel,进入「自动化」选项卡,点击「新建脚本」,粘贴对应代码。
  2. 根据你的实际数据结构(普通区域/表格)选择代码,替换工作表或表格名称。
  3. 运行脚本即可完成复制。

内容的提问来源于stack exchange,提问作者Kavinda_404

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 21:15:11