【发布时间】:2021-07-13 20:59:00
【问题描述】:
我有一个脚本可以复制和粘贴值,但它不会从公式中复制值:
function onEdit() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
if (sheet.getRange("Q17").isChecked() === true) {
var s = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet() s.getRange('F14').setFormula('= IF (O12 = 0; ""; IF (AND (L4 = 0; O4 = 0; L5 = 0); CONCATENATE ("Inventaire effectué le "; TEXT (DATE (YEAR (TODAY ()); MONTH (TODAY ()); DAY (TODAY ())); "dd mmmm yyy"); " recettes automates du jour non intégrées"); CONCATENATE ("Inventaire effectué le "; TEXT (DATE ( YEAR (TODAY ()); MONTH (TODAY ()); DAY (TODAY ())); "dd mmmm yyy"); " recettes du jour intégrées")))');
coller ()
}
}
function coller() {
var p = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet() p.getRange('F5:J14').copyTo(p.getRange('F16'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
var range = SpreadsheetApp.getActiveSpreadsheet().getRange("R19"); range.setValue("OK, valeurs copiées");
var range = SpreadsheetApp.getActive().getRange('Q17'); range.uncheck()
var range = SpreadsheetApp.getActiveSpreadsheet().getRange("F14"); range.setValue("");
}
公式F14中的结果:
= IF (O12 = 0; ""; IF (AND (L4 = 0; O4 = 0; L5 = 0); CONCATENATE ("Inventaire effectué le "; TEXT (DATE (YEAR (TODAY ()); MONTH (TODAY ()); DAY (TODAY ())); "dd mmmm yyy"); " recettes automates du jour non intégrées"); CONCATENATE ("Inventaire effectué le "; TEXT (DATE ( YEAR (TODAY ()); MONTH (TODAY ()); DAY (TODAY ())); "dd mmmm yyy"); " recettes du jour intégrées")))
https://docs.google.com/spreadsheets/d/1_2m2azh1FEhNgm4X8S5tY_UwOQHDA8K38Ye1YpbSZB4/edit?usp=sharing
【问题讨论】:
-
你真的不需要额外的功能,你应该将它们结合起来,更好地利用事件对象。另外请组织函数,使单独的命令位于不同的行。
标签: google-apps-script google-sheets