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

如何用Google Sheets公式判断Google表单是否接受响应?

直接通过Google Apps Script获取Google表单状态(无需解析HTML)

你之前用IMPORTXML的方法不可靠——Google表单的HTML结构属于内部实现,随时可能修改类名或布局,导致XPath路径失效出现解析错误。直接用Google Apps Script的FormApp服务就能精准获取表单状态,步骤如下:

1. 编写状态更新脚本

打开你的Google表格,点击「扩展程序」>「Apps脚本」,替换默认代码为以下内容:

function updateFormStatus() {
  // 替换成你的Google表单URL
  const formUrl = "你的Google表单完整URL";
  const form = FormApp.openByUrl(formUrl);
  
  // 获取并转换状态文本
  const isAccepting = form.isAcceptingResponses();
  const statusText = isAccepting ? "Open" : "Closed";
  
  // 将状态写入Toggle按钮下方的单元格,这里假设是A4,可根据你的表格调整
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  sheet.getRange("A4").setValue(statusText);
}

// 可选:和你的开关表单脚本绑定,实现开关后自动同步状态
function toggleFormStatus() {
  const formUrl = "你的Google表单完整URL";
  const form = FormApp.openByUrl(formUrl);
  
  // 切换表单接受响应状态
  form.setAcceptingResponses(!form.isAcceptingResponses());
  
  // 切换后立即更新表格内的状态显示
  updateFormStatus();
}

2. 绑定脚本到按钮

  • 如果你想手动触发状态更新:插入一个绘图按钮(「插入」>「绘图」),绘制完成后右键点击按钮,选择「指定脚本」,输入updateFormStatus。
  • 如果你已有Toggle开关按钮:直接把原开关脚本替换成上面的toggleFormStatus,这样每次点击开关都会自动同步状态到目标单元格。

3. 可选:设置自动加载状态

如果希望打开表格时自动加载最新状态:

  • 在Apps脚本编辑器左侧点击「触发器」图标,添加新触发器。
  • 选择updateFormStatus函数,事件类型选「从电子表格」>「打开」,保存并完成授权即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 19:20:11