我需要帮助来拒绝下拉选择
I need help to reject the dropdown selection
我有一个 google sheet 可以使用应用程序脚本记录我队友的工作日志
我需要帮助来拒绝“状态”列中的下拉菜单 selection,如下所示
如果“开始日期”有值并且用户select“进行中”
如果“关闭日期”有值并且用户 select“已完成”
“开始日期”和“结束日期”值是根据“状态”列下拉菜单生成的 select“进行中”和“已完成”
其余状态应该能够根据用户要求更改
嘿,您会建议使用 forEach 循环来读取 Col F 的每一行,因为您的代码已经设置了他们首次选择“进行中”时的日期和时间。因此,如果它已经开始(Col F 已填充),则 NEW DATA VALIDATION 将设置为 Col C.
function dropdown(){
const ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
const data = ss.getDataRange().getValues()
var oldvalidation = SpreadsheetApp.newDataValidation().requireValueInList(['In-progress','Continue','Pause','Completed'], true).build();
var newvalidation = SpreadsheetApp.newDataValidation().requireValueInList(['Continue','Pause','Completed'], true).build();
//Going down each row of Col F, if the cell is empty then skip, else if its filled (means started) then "in progress" milestone not included into new data validation
data.forEach(function(row,col){
if (col == "") return;
if (row[5] != "")
{
ss.getRange(col+1,3).setDataValidation(newvalidation); //set new validation
}
else
{
ss.getRange(col+1,3).setDataValidation(oldvalidation); //set new validation
}
});
}
参考文献:
我有一个 google sheet 可以使用应用程序脚本记录我队友的工作日志
我需要帮助来拒绝“状态”列中的下拉菜单 selection,如下所示
如果“开始日期”有值并且用户select“进行中”
如果“关闭日期”有值并且用户 select“已完成”
“开始日期”和“结束日期”值是根据“状态”列下拉菜单生成的 select“进行中”和“已完成”
其余状态应该能够根据用户要求更改
嘿,您会建议使用 forEach 循环来读取 Col F 的每一行,因为您的代码已经设置了他们首次选择“进行中”时的日期和时间。因此,如果它已经开始(Col F 已填充),则 NEW DATA VALIDATION 将设置为 Col C.
function dropdown(){
const ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
const data = ss.getDataRange().getValues()
var oldvalidation = SpreadsheetApp.newDataValidation().requireValueInList(['In-progress','Continue','Pause','Completed'], true).build();
var newvalidation = SpreadsheetApp.newDataValidation().requireValueInList(['Continue','Pause','Completed'], true).build();
//Going down each row of Col F, if the cell is empty then skip, else if its filled (means started) then "in progress" milestone not included into new data validation
data.forEach(function(row,col){
if (col == "") return;
if (row[5] != "")
{
ss.getRange(col+1,3).setDataValidation(newvalidation); //set new validation
}
else
{
ss.getRange(col+1,3).setDataValidation(oldvalidation); //set new validation
}
});
}
参考文献: