根据列中的数据复制并粘贴到空白行

问题描述 投票:0回答:1

我有一些编写 VBA 宏的经验(但绝不是专家),现在开始专门在线处理 Excel 365 文件。所以我正在尝试将一些 VBA 逻辑转换为 Office 脚本。

我需要一个非常简单的脚本来执行以下操作:

从 A2:U2 复制单元格 根据 D 列中的数据粘贴到下一个空白行

我一直在尝试使用 GPT 来寻求帮助,但是却一直在原地打转。我已经运行了至少六种不同的脚本,所有这些脚本都存在各种错误。以下是我最新的。

getRange 函数发生错误。我认为它与我的“destinationRange”变量有关。

function main(workbook: ExcelScript.Workbook) {
    let selectedSheet = workbook.getActiveWorksheet();
    
    // Find the last used row in column D
    const lastRow = selectedSheet.getRange("D:D").getUsedRange().getLastRow();
    
    // Paste to range A8 on selectedSheet from range A2:U2 on selectedSheet
    const destinationRange = selectedSheet.getRangeByIndexes(lastRow.row + 1, 1, 1, 21); // 21 columns from A to U
    selectedSheet.getRange(destinationRange).copyFrom(selectedSheet.getRange("A2:U2"), ExcelScript.RangeCopyType.all, false, false);
}
javascript excel typescript office-scripts
1个回答
0
投票
function main(workbook: ExcelScript.Workbook) {
    let selectedSheet = workbook.getActiveWorksheet();
    // Find the last used row in column D
    const lastCellD = selectedSheet.getRange("D:D").getLastCell().getRangeEdge(ExcelScript.KeyboardDirection.up);
    // For testing, validate the last cell location
    console.log(lastCellD.getAddress())
    // Paste to first blank cell in col D from range A2:U2 on selectedSheet
    lastCellD.getOffsetRange(1,0).copyFrom(selectedSheet.getRange("A2:U2"), ExcelScript.RangeCopyType.all, false, false);
}
© www.soinside.com 2019 - 2024. All rights reserved.