提示框,询问价值,存储在单元格中。添加按钮以进行调整

时间:2017-10-21 15:36:16

标签: google-apps-script google-sheets

我是谷歌表世界的新手。我能够在Excel中编写非常简单的例程。很抱歉,如果我在本网站的任何地方都找不到答案。

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

  1. 我想在打开Goog​​le工作表时提示一个问题框,询问数字值,在回答之后,将数值存储到特定的单元格,例如B3。
  2. 我想在工作表的多个页面上有一个按钮,提示相同的问题框来编辑该值。
  3. 背景:

    我是一名医生,我在紧急情况下为小孩子制作了一张含有多种药物的床单。我想询问用户孩子的年龄(以及之后的重量,现在计算得出),所以所有页面的年龄和体重都是正确的,用户并不急于找到合适的细胞。如果用户想要编辑年龄,他会使用所有工作表上的按钮。

1 个答案:

答案 0 :(得分:0)

首先,使用以下功能,您可以询问用户年龄并将其设置为特定工作表中的特定单元格:

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 );  
}

现在,因为您使用了短语

  

因此所有页面的年龄和体重都是正确的

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

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();
 }

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

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

  promptUserAge

现在图像用作调用该功能的按钮。

我希望这有帮助。