根据下拉选择将行从一张纸复制到另一张纸并隐藏在原始纸上

问题描述 投票:0回答:1
我有一个 Excel 文件 - 有 2 个工作表 - 在第一个工作表上 - 有许多行包含大量数据 - 最后一行将有一个下拉选择“无”/“活动”/“已关闭” - 每当“已关闭”时选定 - 整行应复制到下一张纸上的下一个可用行并隐藏在初始纸上。

增加了复杂性 - 它适用于在 Teams 中打开/使用的 Excel。

知道该怎么做吗?

非常感谢!!

我尝试录制一个宏 - 但这是针对特定行的 - 我需要它来选择任何行。

它创建的代码是:

function main(workbook: ExcelScript.Workbook) { let selectedSheet = workbook.getActiveWorksheet(); // Set range S575 on selectedSheet selectedSheet.getRange("S575").setValue("Closed"); let _2024_Closed = workbook.getWorksheet("2024_Closed"); // Paste to range A521 on _2024_Closed from range A575:S575 on selectedSheet _2024_Closed.getRange("A521").copyFrom(selectedSheet.getRange("A575:S575"), ExcelScript.RangeCopyType.all, false, false); // Set visibility of row(s) at range 575:575 on selectedSheet to true selectedSheet.getRange("575:575").setRowHidden(true); }
    
excel office-scripts
1个回答
0
投票
function main(workbook: ExcelScript.Workbook) { const dataSheet = workbook.getWorksheet("Data"); // modify as needed const table: ExcelScript.Table = workbook.getTable("Table1"); const dataRange = table.getRange(); const tabFilter = table.getAutoFilter(); tabFilter.clearCriteria(); const colHeader = "Status" // modify as needed const colIndex = table.getColumnByName(colHeader).getIndex(); // Col S tabFilter.apply(dataRange, colIndex, { filterOn: ExcelScript.FilterOn.values, values: ["Closed"] }); const shtClosed = workbook.getWorksheet("2024_Closed"); const desDataRange = shtClosed.getUsedRange(true); const destCell = shtClosed.getCell(desDataRange.getRowCount(),0); destCell.copyFrom(table.getRangeBetweenHeaderAndTotal().getSpecialCells(ExcelScript.SpecialCellType.visible)); table.getColumnByName(colHeader).getFilter().applyCustomFilter("<>*Closed*"); }

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.