我有一些编写 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);
}
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);
}