Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
For loop 谷歌应用程序脚本,用于获取单元格值并插入公式_For Loop_Google Apps Script - Fatal编程技术网

For loop 谷歌应用程序脚本,用于获取单元格值并插入公式

For loop 谷歌应用程序脚本,用于获取单元格值并插入公式,for-loop,google-apps-script,For Loop,Google Apps Script,我有5个可能的位置,用户可以在其中输入:“是、否或任何URL”。如果输入了URL,我需要将该单元格(URL)的值输入到单独表格中相应单元格的方程式中。以下是我所拥有的: //Locations of the cells where the user can enter the URL. var graphic1_loc = 'A62'; var graphic2_loc = 'A63'; var graphic3_loc = 'A64'; var graphic4_loc =

我有5个可能的位置,用户可以在其中输入:“是、否或任何URL”。如果输入了URL,我需要将该单元格(URL)的值输入到单独表格中相应单元格的方程式中。以下是我所拥有的:

  //Locations of the cells where the user can enter the URL.
  var graphic1_loc = 'A62';
  var graphic2_loc = 'A63';
  var graphic3_loc = 'A64';
  var graphic4_loc = 'A65';
  var graphic5_loc = 'A66';

  //The corresponding locations on the "Briefing" sheet where the images would get inserted.
  var graphic1_placement = 'B45';
  var graphic2_placement = 'B46';
  var graphic3_placement = 'B47';
  var graphic4_placement = 'B48';
  var graphic5_placement = 'B49';

  //main_gen is the name of the sheet where the user enters the data. This just grabs the value
  //the user entered and stores it in the corresponding variable.

  var graphic1 = SpreadsheetApp.getActiveSheet().getRange('main_gen!'+graphic1_loc).getValue();
  var graphic2 = SpreadsheetApp.getActiveSheet().getRange('main_gen!'+graphic2_loc).getValue();
  var graphic3 = SpreadsheetApp.getActiveSheet().getRange('main_gen!'+graphic3_loc).getValue();
  var graphic4 = SpreadsheetApp.getActiveSheet().getRange('main_gen!'+graphic4_loc).getValue();
  var graphic5 = SpreadsheetApp.getActiveSheet().getRange('main_gen!'+graphic5_loc).getValue();
  var graphics_placements = ["B45", "B46", "B47", "B48", "B49"]; //These are the corresponding cells where the image would be placed on a separate sheet.

//If any graphic is a URL, insert that image into it's corresponding cell in the Briefing tab.
  for (var num = 0; num < 5; num ++) {
    var graphicformula = '=IMAGE("' + graphic[num] + '",1)';
    if (graphic[num].length > 5) {
   SpreadsheetApp.getActiveSheet().getRange('Briefing!'+graphic[num]_placement).setFormula(graphicformula);
    }
  }
//用户可以输入URL的单元格位置。
var graphic1_loc='A62';
var graphic2_loc='A63';
var graphic3_loc='A64';
var graphic4_loc='A65';
var graphic5_loc='A66';
//“简报”表上插入图像的相应位置。
var graphic1_placement='B45';
var graphic2_位置='B46';
var graphic3_placement='B47';
var graphic4_placement='B48';
var graphic5_placement='B49';
//main_gen是用户输入数据的工作表的名称。这只是抓住了价值
//用户输入并将其存储在相应的变量中。
var graphic1=SpreadsheetApp.getActiveSheet().getRange('main_gen!'+graphic1_loc.getValue();
var graphic2=SpreadsheetApp.getActiveSheet().getRange('main_gen!'+graphic2_loc).getValue();
var graphic3=SpreadsheetApp.getActiveSheet().getRange('main_gen!'+graphic3_loc).getValue();
var graphic4=SpreadsheetApp.getActiveSheet().getRange('main_gen!'+graphic4_loc).getValue();
var graphic5=SpreadsheetApp.getActiveSheet().getRange('main_gen!'+graphic5_loc).getValue();
var图形位置=[“B45”、“B46”、“B47”、“B48”、“B49”]//这些是相应的单元格,图像将放置在单独的纸张上。
//如果任何图形是URL,请将该图像插入简报选项卡中相应的单元格。
for(var num=0;num<5;num++){
var graphicformula='=IMAGE(“'+graphic[num]+'”,1);
如果(图形[num]。长度>5){
电子表格app.getActiveSheet().getRange('Briefing!'+graphic[num]\u placement).setFormula(graphicformula);
}
}
我试图在For循环中得到If语句的意思是……如果graphic1的值的长度大于5(如果不是yes(3)或no(2),则假定它是一个URL),然后在“简报”表上找到相应的单元格以插入公式。我目前的写作方式是不正确的,但我想尝试写一些东西给你一个想法,我在追求什么。谢谢你能提供的任何帮助

  • 您想运行
    SpreadsheetApp.getActiveSheet().getRange('Briefing!'+graphic[num]\u placement).setFormula(graphicformula)
    graphic#
    的值为URL时
  • 例如,当URL位于工作表
    main\u gen
    中的单元格
    A63
    中时,您希望将
    =IMAGE(URL,1)
    的公式放入工作表
    简报中的单元格
    B46
如果我的理解是正确的,那么这个答案呢?请把这看作是几个可能的答案之一

修改点:
  • 在脚本中,您试图使用
    graphic[num]
    作为
    graphic1、graphic2、、、
    的变量。在这种情况下,不能将其用作变量
  • 在您的情况下,工作表
    main\u gen
    中的单元格
    A62:A66
    与工作表
    简报中的单元格
    B45:B49
    相对应。我认为这可以用来修改你的脚本。
    • 工作表
      main\u gen
      中单元格
      A62:A66
      的值可通过
      ss.getSheetByName(“main\u gen”).getRange(“A62:A66”).getValues()检索
  • 为了确认cell的值是否为URL,在这次修改中,我使用了
    test()
  • 我认为,当目标表被声明为不在for循环中时,可以降低流程成本
当上述各点反映到脚本中时,它将变成如下所示

修改脚本:
var ss=SpreadsheetApp.getActiveSpreadsheet();
var source=ss.getSheetByName(“main_gen”).getRange(“A62:A66”).getValues();
var dstSheet=ss.getSheetByName(“简报”);
var图形位置=[“B45”、“B46”、“B47”、“B48”、“B49”];
for(var num=0;num
参考资料:
如果我误解了你的问题,而这不是你想要的方向,我道歉。

  • 您想运行
    SpreadsheetApp.getActiveSheet().getRange('Briefing!'+graphic[num]\u placement).setFormula(graphicformula)
    graphic#
    的值为URL时
  • 例如,当URL位于工作表
    main\u gen
    中的单元格
    A63
    中时,您希望将
    =IMAGE(URL,1)
    的公式放入工作表
    简报中的单元格
    B46
如果我的理解是正确的,那么这个答案呢?请把这看作是几个可能的答案之一

修改点:
  • 在脚本中,您试图使用
    graphic[num]
    作为
    graphic1、graphic2、、、
    的变量。在这种情况下,不能将其用作变量
  • 在您的情况下,工作表
    main\u gen
    中的单元格
    A62:A66
    与工作表
    简报中的单元格
    B45:B49
    相对应。我认为这可以用来修改你的脚本。
    • 工作表
      main\u gen
      中单元格
      A62:A66
      的值可通过
      ss.getSheetByName(“main\u gen”).getRange(“A62:A66”).getValues()检索
  • 为了确认cell的值是否为URL,在这次修改中,我使用了
    test()
  • 我认为,当目标表被声明为不在for循环中时,可以降低流程成本
当上述各点反映到脚本中时
var ss = SpreadsheetApp.getActiveSpreadsheet();
var source = ss.getSheetByName("main_gen").getRange("A62:A66").getValues();
var dstSheet = ss.getSheetByName("Briefing");
var graphics_placements = ["B45", "B46", "B47", "B48", "B49"];
for (var num = 0; num < source.length; num ++) {
  if (/https?:\/\//.test(source[num][0])) {
    var graphicformula = '=IMAGE("' + source[num][0] + '",1)';
    dstSheet.getRange(graphics_placements[num]).setFormula(graphicformula);
  }
}