我正在组装一个谷歌工作表,从零件列表中组装定制的无人机构建。
主明细表和编译器位于主工作表中。
我已经获得了根据项目类型(字母顺序)组装行数组的脚本。
我想让它在按钮按下时,脚本组装并排序一个数组,然后将行复制到它们的项目类型页面,这样编译器就可以制作一个下拉菜单(菜单部分存在并工作)。只需使用主列表中的数据填充项目类型页面。
我的想法是运行一条if语句,例如if string matches,在匹配的工作表上将数组字符串写入空范围。这是可能的,还是有更简单的方法来做到这一点?
/** @customFunction
What I want the script to do:
Read Column 1 from A26:A100 or lookahead for end of list
If current cell contains Sheet Name, copy row to corresponding sheet.
*/
/** function myFunction() {
Browser.msgBox('You clicked it!');
}
@customFunction
*/
/** var PDB = app.getActiveSpreadsheet().getSheetByName("PDB"); //Target sheet for PDB
var VTX = app.getActiveSpreadsheet().getSheetByName("VTX"); //Target sheet for VTX
var FRAME = app.getActiveSpreadsheet().getSheetByName("FRAME"); //Target sheet for FRAME
var MOTOR = app.getActiveSpreadsheet().getSheetByName("MOTOR"); //Target sheet for MOTOR
var FPVCAM = app.getActiveSpreadsheet().getSheetByName("FPVCAM"); //Target sheet for FPVCAM
var AIOFC = app.getActiveSpreadsheet().getSheetByName("AIO FC"); //Target sheet for AIO FC
var ESC = app.getActiveSpreadsheet().getSheetByName("ESC"); //Target sheet for ESC
var PROPS = app.getActiveSpreadsheet().getSheetByName("PROPS"); //Target sheet for PROPS
var itemType = activeSheet.getRange(i, 1).getValue();
*/
function sortscript() {
Logger.clear();
var app = SpreadsheetApp //selects app
var activeSheet = app.getActiveSpreadsheet().getActiveSheet(); //selects Spreadsheet and Sheet
var itemListArr = [];
for(var i=27;i<=58;i++){
var itemListGet = activeSheet.getRange(i, 1, 1, 7).getValues(); //Create Array of Items and rows
itemListArr.push(itemListGet);
itemListArr.sort(); //Groups by item type alphabetically
}
if(itemListArr.indexOf("PDB") > -1) {
activeSheet.getActiveCell()
Logger.log() //Does nothing right now ik
}
}发布于 2019-12-05 04:27:56
也许这不是你想要的,但是我认为这对于使用脚本来说太简单了(除非你打算添加更多的自动化特性)。
您可以简单地转到各个项目工作表,并使用公式来筛选主工作表上的范围。
对于"PBD“表,公式将如下所示:
=FILTER(MASTER!A27:G,MASTER!A27:A="PDB")结果如下所示。

在'Master‘工作表上,您可以将数据验证设置为'PBD’工作表的引用列'B‘。如果在列B中包含所有行,则项列表将自动更新(例如,如果数据集中有2个以上的"PDB“项)
https://stackoverflow.com/questions/59180303
复制相似问题