Javascript 谷歌工作表:";如果项目为;“缺货”;,然后从数据验证列表中删除该项
我一直在试图找到一个解决我的谷歌工作表问题的办法,并尝试了相当多的变通办法,到目前为止,没有任何效果。我想我可能需要使用javascript来完成操作,但是,我是javascript的初学者 这是我想要的工作表Javascript 谷歌工作表:";如果项目为;“缺货”;,然后从数据验证列表中删除该项,javascript,excel,google-apps-script,google-sheets,Javascript,Excel,Google Apps Script,Google Sheets,我一直在试图找到一个解决我的谷歌工作表问题的办法,并尝试了相当多的变通办法,到目前为止,没有任何效果。我想我可能需要使用javascript来完成操作,但是,我是javascript的初学者 这是我想要的工作表 检查“表2”,查看指定范围内的项目是否设置为“缺货” 第2页 如果范围内的项目设置为“缺货”,则从“表1”上的数据验证列表中删除该项目,如果该项目为“库存”,则在数据验证列表中显示该项目 第1页 以下是我迄今为止尝试过的一些方法(如果有帮助的话): 在第#2页上,当项目设置为缺货时
以下是我迄今为止尝试过的一些方法(如果有帮助的话):
。。。所以,是的,如果有人知道一个解决方案,让这个工作,我将永远感谢它!同时,我将继续搜索谷歌的解决方案。为了简单起见,我创建了一个包含两张表的示例电子表格:表1和“库存” 第1页 股票 解决方案 我已经创建了一个应用程序脚本函数,用于按照您的指定设置数据验证 我使用Javascript和函数简化了数据获取,但基本上:
行[1]
)不等于“库存”的行行[0]
)//VARIABLES
var rangeToValidate = "B2:B";
var validateSheet = "Sheet1";
var optionSheet = "Stock";
function refreshDataValidation() {
var inStockOptions = SpreadsheetApp.getActive().getSheetByName(optionSheet).getDataRange().getValues()
.filter(function (row) { return (row[1]=="In Stock")})
.map(function(row) {return row[0]});
SpreadsheetApp.getActive().getSheetByName(validateSheet).getRange(rangeToValidate)
.setDataValidation(
SpreadsheetApp.newDataValidation().requireValueInList(inStockOptions).build()
);
}
此外,通过使用应用程序脚本添加一些代码,工作表将确保您的下拉列表始终是最新的
每次打开工作表以及每次对B列上的库存工作表进行编辑时,我都会刷新下拉列表
//When the sheet is opened, refresh the data validation
function onOpen(e) {
refreshDataValidation();
}
//When a change is made to the Stock sheet, also refresh validation
function onEdit(e) {
var range = e.range;
if (range.getSheet() == SpreadsheetApp.getActive().getSheetByName(optionSheet) && range.getColumn() == 2) {
refreshDataValidation();
}
}
希望这有帮助 好了,伙计们,我找到了一个解决方案,将来有人访问这个帖子,就在这里 因此,可以使用上面提供的脚本。但是,如果您已经有了其他脚本、数据验证和其他格式,那么,像我一样,您实际上可能会遇到许多错误和冲突问题
作为一个解决办法,我做了些什么,让一切正常工作。您总共需要3张图纸:一张主图纸、一张带有您的选项的第二张图纸,以及一张用于存放拉取数据的第三张图纸
- sheet2!G3:R5=我希望从中提取的行/列的范围
- sheet2!I3:I5=我希望它在该栏中查找“库存中”或“缺货”字样
- “缺货”=如果第I3列中的单元格不等于“缺货”,则显示数据(表示仅显示在股票期权中)
希望这对某人有所帮助!!!感谢上面的人,他们给出了其他可能的解决方案!!您可以加入您尝试过的if语句吗?听起来您需要重新考虑表单。您不需要Javascript来完成这项工作,并祝贺您在此过程中解决了另一个问题:)嗯,我已经试了几个小时了,所以很多都因为没工作而被我移除了。但是我知道我有三个