google-apps-script - Google Pass脚本如何在某个单元格上粘贴任何值时运行onEdit()
问题描述
每当我在工作表“Temp”单元格 C2 上粘贴任何值时,我都想运行触发器
我怎样才能做到这一点 ?
--
这是我的代码
function onEdit(e) {
if(e.range.getSheet().getName()!='Temp')return;
if(e.range.getA1Notation()!='C2')return;
e.source.toast('You enter: ' + e.range.getValue());
// what I want to run when any value is pasted on C2
Script();
}
我想注意,当我仅在 C2 中复制和粘贴时它有效,但我采用了整个范围并粘贴它,所以也许这就是为什么不适合我的原因?也许我必须更改一些在我粘贴时指示的内容一个范围?
--
这是我粘贴范围时要运行的脚本函数
function Script(){
// Gets Temp Sheet
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName("Temp");
// Change file name
ss.rename(sh.getRange('Q4').getValue());
// Hide Sheet "Temp"
sh.hideSheet();
// Paste as values dates from sheet Temp
var range ="AL3:AL5";
sh.getRange(range).copyTo(sh.getRange(range), {contentsOnly:true})
// Hides blank rows in sheets 1,2,3
Hide();
// Creates the File in Drive
var sheetId = ss.getId();
var folder = DriveApp.getFolderById("ID"); // The File is stored in this folder
var name = ss.getName() + ".xlsx"; // The name of the new file
var url = "https://docs.google.com/spreadsheets/d/" + sheetId + "/export?format=xlsx&access_token=" + ScriptApp.getOAuthToken();
var blob = UrlFetchApp.fetch(url).getBlob().setName(name); // Modified
folder.createFile(blob);
Reset();
}
/*
After the file is generated
*/
function Reset() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Temp');
// Unhide Sheet "Temp"
sheet.showSheet();
// Resets Sheet Temp
sheet.getRange('A1:AI').clearContent();
sheet.getRange('AL3').setFormula('=AL1');
sheet.getRange('AL4').setFormula('=WORKDAY(AL3,1)');
sheet.getRange('AL5').setFormula('=WORKDAY(AL4,1)');
// Reset the file name
ss.rename('_'+'TEMPLATE');
// Set the cursor to move to Temp
SpreadsheetApp.setActiveSheet(ss.getSheetByName('Temp'))
// Unhides Rows from sheets 1,2,3
Unhide();
}
解决方案
这个:
function onEdit(e) {
if(e.range.getSheet().getName()!='Temp')return;
if(e.range.rowStart==2 && e.range.columnStart==3) {
Script();
}
}
推荐阅读
- compilation - Solidity 错误:无法构造包含(嵌套)映射的结构
- firebase - Firebase ML Kit 中文翻译 - 离线模式
- python - 数组之间的最大差异
- algorithm - 在小于 O(N) 的时间内求和
- javascript - 为什么我的 redux 状态在页面刷新时回到初始值?
- javascript - 如何加密和解密在 URL 中查询我的查询参数?
- android - React Native Android - 第一次运行 react-native run-android 时出错
- flutter - 我应该将 FCM 配置准确地放在 Flutter 应用程序的哪个位置?
- c++ - 关于glvalues的“动态类型”的定义
- opengl - GLSL / HLSL / SPIR-V 中的 _pdep_u32