google-apps-script - 提示框,询问值,存储在单元格中。添加适应按钮

标签 google-apps-script google-sheets

我是 Google 表格世界的新手。我能够在 Excel 中编写非常简单的例程。抱歉,如果我在本网站上找不到答案。

我的问题很简单,有两部分:

  1. 我想在打开谷歌工作表时提示一个问题框,询问一个数值,回答这个问题后,将数值存储到特定的单元格,例如B3。
  2. 我希望在工作表的多个页面上有一个按钮,提示同一个问题框编辑值。

背景:

我是一名医生,我为紧急情况下的 child 子制作了一张包含许多药物的表格。我想询问用户 child 的年龄(也许稍后是体重,现在已计算),因此所有页面上的年龄和体重都是正确的,并且用户并不急于找到正确的单元格。如果用户想要编辑年龄,他可以使用所有工作表上都可用的按钮。

最佳答案

首先,通过以下函数,您可以询问用户年龄并将其设置到特定工作表中的特定单元格:

function promptUserAge()
{
  // Prompt for the value
  var age =  SpreadsheetApp.getUi().prompt("Please enter the age.").getResponseText();

  // Get the sheet that you want store the value in and set the value in the cell B3
  SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Patient Information").getRange("B3").setValue( age );  
}

现在,既然你使用了这个短语

so the age and weight are correct on all pages

我不确定您是否要在多个工作表中设置该值,以及是否要使用工作表函数或应用程序脚本来执行此操作。这就是为什么我要在特定单元格的所有工作表中包含设置值的方法:

function promptUserAge()
{
 // Prompt for the value
 var age =  SpreadsheetApp.getUi().prompt("Please enter the age.").getResponseText();
 //Get all pages in spreadsheet and iterate through
 var sheets =   SpreadsheetApp.getActiveSpreadsheet().getSheets();
 for(var i = 0; i < sheets.length; i++ )
 {
  //Set the value in the cell B3 of the page
  sheets[i].getRange("B3").setValue( age );
 }  
}

要在用户打开您使用的电子表格时弹出提示,请在 onOpen 函数中调用它:

function onOpen(e)
{ 
  promptUserAge();
}

现在是添加按钮来编辑值的部分。

您可以添加一个自定义菜单,该菜单将显示在电子表格的工具栏中,其中自定义菜单如下所示:

 function createMenu()
 {
   SpreadsheetApp.getUi().createMenu("Fill information")
            .addItem("Age", "promptUserAge")
            .addToUi();
 }

如果您的用户知道要查找什么,这意味着您已告诉他们自定义菜单的存在,这是一个好方法。根据我的经验,有些人很难找到菜单,即使你告诉他们菜单在那里,所以既然你的背景表明你想要创建一种简单快捷的方法,我会使用第二种方法:

您可以通过从工具栏导航:插入 -> 图像,将图像插入到电子表格中。插入一张图像,以非常清晰的方式显示“按此处编辑信息”,然后右键单击该图像。您可以使用边框来编辑图像大小,并且在其右上角出现三个点。单击这些点,然后单击“分配脚本...”。在提示符下,插入不带括号的函数名称。在此示例中,您将插入:

  promptUserAge

现在该图像充当调用该函数的按钮。

我希望这有帮助。

关于google-apps-script - 提示框,询问值,存储在单元格中。添加适应按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46864923/

相关文章:

javascript - 应用程序脚本格式日期时间错误

javascript - Google 应用程序脚本打开新窗口

excel - 在 Google 电子表格中使用 INDIRECT 将 2 列合并为一列

javascript - Google Sheet 脚本重置下拉框

javascript - 如何查找重复项 - 通过引用第一列?

javascript - 如何从 for 循环的每次迭代返回值

google-apps-script - 如何删除数据验证?

javascript - 提取单元格编辑器名称并将其写入相应行

arrays - 使用 Google Sheets 过滤器减去数组(设置差异)

javascript - Google 脚本 - 合并运算符语法在 IF 语句中不起作用