You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets联动设置:按C列值控制D列下拉与编辑权限

Google Sheets 实现C列选择Full时D列可编辑并显示下拉列表的方案

方法一:结合数据验证与Apps Script(严格满足需求)

这种方法能实现C列选Full时D列显示指定下拉且可编辑,否则D列完全不可编辑的效果。

1. 预先配置D列的基础数据验证

  • 选中D2:Dn(替换n为实际最后一行行号)的单元格区域
  • 点击顶部菜单栏「数据」→「数据验证」
  • 在弹出的配置面板中:
    • 「条件」选择「列表项」,输入bank,cash
    • 取消勾选「显示下拉列表」,点击「保存」

2. 编写脚本控制权限与下拉显示

  • 点击菜单栏「扩展」→「Apps Script」打开脚本编辑器
  • 删除默认代码,粘贴以下脚本:
function onEdit(e) {
  const activeSheet = e.source.getActiveSheet();
  const editedRange = e.range;
  
  // 仅响应C列的编辑操作
  if (editedRange.getColumn() !== 3) return;
  
  const targetRow = editedRange.getRow();
  const dCell = activeSheet.getRange(targetRow, 4);
  const cCellValue = editedRange.getValue();
  const currentUser = Session.getEffectiveUser();
  
  // 获取或创建D单元格的保护规则
  let cellProtection = dCell.getProtection();
  if (!cellProtection || !cellProtection.isProtected()) {
    cellProtection = dCell.protect().setDescription('Conditional edit lock');
    cellProtection.addEditor(currentUser);
    cellProtection.removeEditors(cellProtection.getEditors().filter(editor => editor.getEmail() !== currentUser.getEmail()));
    if (cellProtection.canDomainEdit()) cellProtection.setDomainEdit(false);
  }
  
  if (cCellValue === 'Full') {
    // 允许编辑并启用下拉列表
    cellProtection.setWarningOnly(true);
    const dropdownRule = SpreadsheetApp.newDataValidation()
      .requireValueInList(['bank', 'cash'], true)
      .setAllowInvalid(false)
      .build();
    dCell.setDataValidation(dropdownRule);
  } else {
    // 锁定单元格并清除下拉列表
    cellProtection.setWarningOnly(false);
    dCell.setDataValidation(null);
  }
}
  • 点击脚本编辑器顶部的「保存」按钮,命名为ConditionalCellControl
  • 返回表格测试:当C列对应单元格选中Full时,D列单元格会出现bank/cash下拉列表且可编辑;选中Part或Contract时,D列单元格将被锁定,无法编辑。

方法二:仅用数据验证(轻量限制输入)

如果不需要完全锁定单元格,仅限制输入内容,可以用这种无脚本的方法:

  • 选中D2:Dn单元格区域
  • 点击「数据」→「数据验证」
  • 「条件」选择「自定义公式」,输入公式:=IF($C2="Full",OR(D2="bank",D2="cash"),TRUE)
  • 勾选「显示下拉列表」,在「列表项」中输入bank,cash
  • 「如果输入无效」选择「拒绝输入」,点击「保存」
    这种设置下,当C列不是Full时,D列无法输入任何内容(输入会被直接拒绝),但仍能选中单元格。

内容的提问来源于stack exchange,提问作者VB RAo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 16:55:14