我正在尝试创建一个脚本,如果您将 D 列中的值从空白更改为“Create Something”,它将启动一个 google 表单。
我尝试了这段代码,但没有任何反应。还编辑了触发按钮,但没有任何反应。
function onEdit(e) {
var sheet = e.source.getSheetByName('Sheet1'); // Replace 'YourSheetName' with the actual name of your sheet
var columnDIndex = 15; // Column D is the 4th column (1-indexed)
if (e.range.getColumn() == columnDIndex && e.value == 'Create Something') {
openGoogleForm();
}
}
function openGoogleForm() {
var formUrl = 'https://docs.google.com/forms/d/yourid'; // Replace 'your-form-id' with the actual ID of your form
var form = FormApp.openByUrl(formUrl);
form.createResponse().submit();
}
我相信您的目标如下。
Create Something
的值时,您要打开Google Form。var columnDIndex = 15; // Column D is the 4th column (1-indexed)
和 e.range.getColumn() == columnDIndex
表示“O”列。e.value == 'Create Something'
的情况下,当通过复制和粘贴来放置Create Something
的值时,e.value
的值没有值。请注意这一点。当这些要点反映在示例脚本中时,就会变成如下所示。
请将以下脚本复制并粘贴到 Google 电子表格的脚本编辑器中并保存脚本。并且,请将 OnEdit 触发器安装到函数
installedOnEdit
。 参考
并且,请将您的 Google 表单 URL 设置为
formUrl
。
并且,请确认您的工作表名称。在此示例中,当将
Create Something
值放入“Sheet1”的“D”列时,脚本将起作用。请注意这一点。
function installedOnEdit(e) {
var { range, value } = e;
var sheet = range.getSheet();
if (sheet.getSheetName() == "Sheet1" && range.columnStart == 4 && !range.isBlank()) { // or if (sheet.getSheetName() == "Sheet1" && range.columnStart == 4 && (value == 'Create Something' || range.getValue() == 'Create Something')) {
var formUrl = 'https://docs.google.com/forms/d/{formId}/edit'; // Please set your Google Form URL.
var form = FormApp.openByUrl(formUrl);
form.getPublishedUrl();
var script = `<script>window.open('${form.getPublishedUrl()}', '_blank').focus();google.script.host.close();</script>`;
var html = HtmlService.createHtmlOutput(script);
SpreadsheetApp.getUi().showModalDialog(html, 'sample');
}
}
当您将
Create Something
的值放入“Sheet1”的“D”列时,将打开一个 Google 表单。
在此示例中,为了打开 Google 表单,在对话框中使用了 Javascript。
在此示例中,打开公共 URL 的 Google 表单。如果你想直接打开Google Form请修改上面的脚本如下。
function installedOnEdit(e) {
var { range, value } = e;
var sheet = range.getSheet();
if (sheet.getSheetName() == "Sheet1" && range.columnStart == 4 && !range.isBlank()) { // or if (sheet.getSheetName() == "Sheet1" && range.columnStart == 4 && (value == 'Create Something' || range.getValue() == 'Create Something')) {
var formUrl = 'https://docs.google.com/forms/d/{formId}/edit'; // Please set your Google Form URL.
var script = `<script>window.open('${formUrl}', '_blank').focus();google.script.host.close();</script>`;
var html = HtmlService.createHtmlOutput(script);
SpreadsheetApp.getUi().showModalDialog(html, 'sample');
}
}
如果您不想查看工作表名称,请删除
sheet.getSheetName() == "Sheet1" &&
。