两种Google表格脚本都可以使用,但同时添加时不起作用

问题描述

我有2个不同的脚本,第一个拷贝当我选择从下拉列表中的片材的名称并将其粘贴在片材具有该名称的行,第二脚本是一个复选框,然后复制打勾时整行到另一张工作表,并将其从原始工作表中删除。因此,在我首先从下拉菜单中选择该选项,然后选中该行应复制到2个不同工作表的复选框之前。

我的麻烦是,尽管这两个脚本在单独运行时都可以工作,但是当我同时拥有这两个脚本时,它们都无法工作。

脚本1

<div class="col-md-12">
<?= $this->Form->create($mail) ?>
<fieldset>
    <legend><?= __('Add Mail') ?></legend>
    <?php
        echo $this->Form->control('Subject',['class' => 'form-control','type' => 'text']);
        echo $this->Form->control('Body',['class' => 'form-control']);
        echo $this->Form->control('Attachment');
    ?>
    <select id="catagory" data-child="family" class="form-control" name="Priority">
        <option value="Normal">Normal</option>
        <option value="High">High</option>
    </select>

    <br>
    <div class="resume-box"> 
        <div class="col-md-6"><input type="text" class="form-control" placeholder="Search"></div><br><br>

        <fieldset>
        <legend><?php __('Users');?></legend>
<?php
foreach ($Ulist as $grades):
    /*
    if($grades->PId != 0){
        echo "<label>";
        echo $this->Form->checkbox('Mail.'.$grades['id'].'ReceptionistId[]',array('value'=>$grades['PId'],'multiple' => 'checkbox')); 
        echo $grades->username. "</label>";
    }
    */

    // output all the checkboxes at once
    echo $this->Form->checkbox('ReceptionistId',array(
        'label' => __('ReceptionistId',true),'type' => 'select','multiple' => 'checkbox','options' => $grades->PId,)); 

    /*
    // output all the checkboxes individually
    $checked = $form->value('Tag.Tag');
    echo $form->label(__('Tags',true));
    foreach ($tags as $id=>$label) {
        echo $form->input("Tag.checkbox.$id",array(
            'label'=>$label,'type'=>'checkbox','checked'=>(isset($checked[$id])?'checked':false),));
    }
    */

endforeach;
?>
        </fieldset>
    </div>
</fieldset><br>
<?= $this->Form->button(__('Submit'),['class' => 'btn btn-success']) ?>
<?= $this->Form->end() ?>
</div>

脚本2

function onEdit(e) {
var sh=e.range.getSheet();
if(sh.getName()=='Approval' && e.range.columnStart==11)  {
var v=sh.getRange(e.range.rowStart,1,sh.getLastColumn()).getValues();
var tsh=e.source.getSheetByName(e.value);
if(tsh) {
  tsh.getRange(tsh.getLastRow() + 1,v[0].length).setValues(v);
  }
 }
}

我已经看过脚本合并,但是我的头要花时间,所以任何帮助都将不胜感激。

解决方法

不能具有两个或多个onEdit()触发器。但是您可以执行以下简单的解决方法。在脚本中添加以下功能:

function onEdit(e) {
onEdit1(e)
onEdit2(e)  
}

然后,按如下所示修改脚本:

脚本1:

function onEdit1(e) {
var sh=e.range.getSheet();
if(sh.getName()=='Approval' && e.range.columnStart==11)  {
var v=sh.getRange(e.range.rowStart,1,sh.getLastColumn()).getValues();
var tsh=e.source.getSheetByName(e.value);
if(tsh) {
  tsh.getRange(tsh.getLastRow() + 1,v[0].length).setValues(v);
  }
 }
}

脚本2:

function onEdit2(event) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();

if(s.getName() == "Approval" && r.getColumn() == 12 && r.getValue() == true) {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("ZSD Sheet");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1,1);
s.getRange(row,numColumns).moveTo(target);
s.deleteRow(row);
 }
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...