Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.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 sheets OneEdit特定单元格-将内容从一张工作表复制到另一张工作表_Google Sheets_Google Sheets Formula - Fatal编程技术网

Google sheets OneEdit特定单元格-将内容从一张工作表复制到另一张工作表

Google sheets OneEdit特定单元格-将内容从一张工作表复制到另一张工作表,google-sheets,google-sheets-formula,Google Sheets,Google Sheets Formula,我在网上找到了这个脚本,它工作起来很有魅力,但是我想在我更改工作表YYY中的单元格E3时触发它,工作表“数据库” 在编辑目标电子表格中的特定单元格时,我希望将数据从一个电子表格导入到另一个电子表格 我是新手,所以非常感谢您的帮助 var sourceSpreadsheetID = "XXX"; var sourceWorksheetName = "sold-for-sale"; var targetSpreadsheetID = "YYY"; var targetWorksheetName =

我在网上找到了这个脚本,它工作起来很有魅力,但是我想在我更改工作表YYY中的单元格E3时触发它,工作表“数据库”

在编辑目标电子表格中的特定单元格时,我希望将数据从一个电子表格导入到另一个电子表格

我是新手,所以非常感谢您的帮助

var sourceSpreadsheetID = "XXX";
var sourceWorksheetName = "sold-for-sale";
var targetSpreadsheetID = "YYY";
var targetWorksheetName = "database";

function importData() {
  var thisSpreadsheet = SpreadsheetApp.openById(sourceSpreadsheetID);
  var thisWorksheet = thisSpreadsheet.getSheetByName(sourceWorksheetName);
  var thisData = thisWorksheet.getDataRange();
  //Uncomment line 11 below and comment out line 9 if you want to sync a named range. Replace "teamBugs" with your named range.
  //var thisData = thisSpreadsheet.getRangeByName("teamBugs");

  var toSpreadsheet = SpreadsheetApp.openById(targetSpreadsheetID);
  var toWorksheet = toSpreadsheet.getSheetByName(targetWorksheetName);
  var toRange = toWorksheet.getRange(1, 1, thisData.getNumRows(), thisData.getNumColumns())
  toRange.setValues(thisData.getValues()); 
}

编辑此电子表格中的某个单元格时,您希望更新目标电子表格YYY

要实现这一目标,您必须做两件事:

安装onEdit触发器: 安装一个触发器,当版本设置为YYY时执行importData。A是不够的,因为您正试图访问多个电子表格,一个需要授权的操作,而简单的触发器无法访问需要授权的服务,请参阅

您可以通过执行此函数来安装此触发器,请参见:

函数createOnEditTrigger{ var ss=SpreadsheetApp.openById目标SpreadsheetId; ScriptApp.newTriggerimportData .Forspreadsheets .onEdit 创造 } 检查编辑的单元格: 安装触发器后,无论编辑了哪个单元格,每次编辑YYY时都会触发importData。要限制这一点,可以检查在导入数据开始时编辑的单元格

可以为此使用:具有属性范围,该范围指已编辑的单元格的数量。您可以使用检索此编辑范围的A1符号,并检查它是否与所需的符号匹配

例如,如果您想要侦听A5的更改,您可以执行以下操作:

函数导入数据{ 如果e.range.geta1表示法===A5{ //以前的导入数据代码 } } 参考:
谢谢@Iamblichus,第一部分工作得很好,但是当我试图安装第二部分时,我卡住了,什么也没发生。我将我的函数放在importData函数中,并像以前一样将变量放在top上,对吗?@meewenman变量可以在函数外部,但与importData相关的代码应该在if条件之后放在我编写的importData函数内部。需要注意的是,只有在A5是已编辑的单元格时,才会运行此操作。您应该根据自己的首选项更改该单元格。您还可以单击编辑>当前项目的触发器以检查是否已安装OneEdit触发器。