Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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
Google apps script 用于拆分字符串的脚本_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 用于拆分字符串的脚本

Google apps script 用于拆分字符串的脚本,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我需要帮助,请在这里与谷歌表脚本。我得到了一个zapier,它从一个系统中获取一些信息并粘贴到我的google上,问题是系统以字符串的形式发送信息,其中的comas是这样的:andres,locuara@gmail.com,阿尔巴尼亚,holatu@gmail.com 所以我在谷歌工作表上使用了公式拆分,这个公式很好用,但问题是每次zapier将信息发送到工作表时,我不知道发生了什么,但zapier从工作表中删除了公式,所以我需要手动再次执行公式来拆分信息并将其放到需要的位置。因此,我想做一个脚

我需要帮助,请在这里与谷歌表脚本。我得到了一个zapier,它从一个系统中获取一些信息并粘贴到我的google上,问题是系统以字符串的形式发送信息,其中的comas是这样的:andres,locuara@gmail.com,阿尔巴尼亚,holatu@gmail.com

所以我在谷歌工作表上使用了公式拆分,这个公式很好用,但问题是每次zapier将信息发送到工作表时,我不知道发生了什么,但zapier从工作表中删除了公式,所以我需要手动再次执行公式来拆分信息并将其放到需要的位置。因此,我想做一个脚本,不能删除,并做所有的工作,因为它需要在整个工作表

我得到了这样的结构:


我希望脚本在整个工作表中的每个单元格中自动完成任务。请问有人能帮我解决这个问题吗?非常感谢=)

这应该可以解决问题

当您打开工作表时,它会将一个项目添加到Google工作表中的命令选项卡栏中。然后按run并等待

function onOpen() { 
  // Try New Google Sheets method
  try{
    var ui = SpreadsheetApp.getUi();
    ui.createMenu('Split cells')
    .addItem('Run', 'main')
    .addToUi(); 
  }

  // Log the error
  catch (e){Logger.log(e)}

}


function main() {

  var settings = {
    dataCol: 3,
    nameCol: 4,
    /*
    mailCol: 5,
    teamCol: 6,
    teamNameCol: 7,
    contactCol: 8, 
    spreadsheet: {}
    */

  }

  settings.dataCol--;
  settings.nameCol--;
  /*
  settings.mailCol--;
  settings.teamCol--;
  settings.teamNameCol--;
  settings.contactCol--; 
  */

  settings.spreadsheet = SpreadsheetApp.getActiveSheet().getDataRange().getValues();

  for (var i = 1; i < settings.spreadsheet.length; i++) {
    var arr = settings.spreadsheet[i][settings.dataCol].split(",");
    for (var j = 0; j < arr.length; i++) {
      settings.spreadsheet[i][settings.nameCol + j] = arr[j] ;
    }

  }



  SpreadsheetApp.getActiveSheet().getDataRange().setValues(settings.spreadsheet);

}
函数onOpen(){
//试试谷歌的新方法
试一试{
var ui=SpreadsheetApp.getUi();
ui.createMenu('拆分单元格')
.addItem('Run','main')
.addToUi();
}
//记录错误
catch(e){Logger.log(e)}
}
函数main(){
变量设置={
数据集:3,
姓名:4,
/*
mailCol:5,
组别:6,,
团队名称:7,
联络电话:8,,
电子表格:{}
*/
}
settings.dataCol--;
settings.nameCol--;
/*
settings.mailCol--;
settings.teamCol--;
settings.teamNameCol--;
settings.contactCol--;
*/
settings.spreadsheet=SpreadsheetApp.getActiveSheet().getDataRange().getValues();
对于(变量i=1;i
尝试阵列公式:

D2:

=ARRAYFORMULA(SPLIT(C2:INDEX(C:C,COUNTA(C:C)),","))

您好,非常感谢您的帮助。我在这里得到了一个错误=function myFunction(){=ARRAYFORMULA(SPLIT(C2:INDEX(C:C,COUNTA(C:C)),“,”),当我把它放在这里时,我得到了一个错误:error de sintaxis(línea 2,archivo“Código”)@George这不是一个脚本。只需在D2中输入一个公式,如果我输入这样的公式,当zapier创建一个新的寄存器时,zapier将删除该公式,这将不起作用。这就是为什么我需要一个脚本=)@George这是一个数组公式。。只要D2未被触动,就没关系,如果zapier删除当前行,如D5或其他什么…我再次尝试,结果是zapier生成了一个新行,因此具有公式的行不会做任何事情,因为zapier生成了另一行。您好,该函数要求我提供查看该帐户中所有谷歌表的所有权利。这正常吗?@George在代码中的某个地方添加这个
/@OnlyCurrentDoc
它不起作用,我的朋友。。。事情是这样的:1。-我有一个可以注册人的系统2。-Zapier获取所有这些信息并在google sheet上进行新的注册3。-google sheet需要有一个脚本来在没有我的情况下分割这些信息-自动4。-我有另一个系统,可以获取这些细节并执行一些操作。我的问题是让我发疯的分裂@乔治:那上面写的是什么?什么错误,输出?您是否按了快速访问工具栏“帮助”旁边的“运行”按钮?脚本也可以被安排为每小时或每天自动运行。