Google sheets OneEdit特定单元格-将内容从一张工作表复制到另一张工作表
我在网上找到了这个脚本,它工作起来很有魅力,但是我想在我更改工作表YYY中的单元格E3时触发它,工作表“数据库” 在编辑目标电子表格中的特定单元格时,我希望将数据从一个电子表格导入到另一个电子表格 我是新手,所以非常感谢您的帮助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 =
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触发器。