需要帮助在自动化选项在excel中动态识别最后一行

xienkqul  于 2023-08-08  发布在  其他
关注(0)|答案(1)|浏览(83)

自动化脚本中的最后一行应该动态选择。不同的Excel包含不同的最后一行,自动化选项应确定最后一行,并运行脚本到该行,而不是超越。
下面是我记录自动化选项时生成的代码。下面的代码包含运行到第3922行的指令。我的其他excel可能包含第3922行或超过第3922行的数据。你可以改变代码,这有助于我找到最后一行动态和停止脚本的基础上,每个不同的Excel。

function main(workbook: ExcelScript.Workbook) 
{
    let selectedSheet = workbook.getActiveWorksheet();
    // Insert at range C:C on selectedSheet, move existing cells right
    selectedSheet.getRange("C:C").insert(ExcelScript.InsertShiftDirection.right);
    // Insert at range C:C on selectedSheet, move existing cells right
    selectedSheet.getRange("C:C").insert(ExcelScript.InsertShiftDirection.right);
    // Set range C1:D2 on selectedSheet
    selectedSheet.getRange("C1:D2").setFormulasLocal([["Age","Aging"],["=TODAY()-B2",null]]);
    // Set number format for range C2 on selectedSheet
    selectedSheet.getRange("C2").setNumberFormatLocal("General");
    // Auto fill range
    selectedSheet.getRange("C2").autoFill("C2:C3922", ExcelScript.AutoFillType.fillCopy);
    // Set range D2 on selectedSheet
    selectedSheet.getRange("D2").setFormulaLocal("=VLOOKUP(C2,Sheet1!A:B,2,1)");
    // Auto fill range
    selectedSheet.getRange("D2").autoFill("D2:D3922", ExcelScript.AutoFillType.fillCopy);
    // Paste to range C:D on selectedSheet from range C:D on selectedSheet
    selectedSheet.getRange("C:D").copyFrom(selectedSheet.getRange("C:D"), ExcelScript.RangeCopyType.values, false, false);
}

字符串

kr98yfug

kr98yfug1#

我想你在寻找什么是优化“自动填充范围”。您可以在自动填充前获取最后一行#。

// get lastRow index
    let lastRow = (selectedSheet.getUsedRange().getLastRow().getRowIndex() + 1).toString();
    selectedSheet.getRange("D2").autoFill("D2:D" + lastRow, ExcelScript.AutoFillType.fillCopy);

字符串

相关问题