javascript - Google表格脚本将输入字段答案移动到空白输出字段
问题描述
我仍在为我工作的音乐工作室制作一张纸,但我又被难住了。最近几天我一直在阅读诸如
1) https://developers.google.com/apps-script/reference/spreadsheet/sheet
2)https://mashe.hawksey.info/2015/03/google-sheets-move-a-row-of-data-to-
another-sheet-based-on-cell-value/
试图将一个单元格从摄入表单复制到不同工作表上的输出列。
我目前正在使用我在 StackOverflow 上找到的这段代码,我尝试对其进行编辑以满足我的需要。
function NewBand(){ //Triggered by button on "New"
var ss = SpreadsheetApp.getActiveSpreadsheet();
var target = SpreadsheetApp.getActiveSpreadsheet();
var source_sheet = ss.getSheetByName('New');
var target_sheet = target.getSheetByName('Roster');
var source_range = source_sheet.getRange('D3');
var target_range = target_sheet.getRange('C10');
source_range.copyTo(target_range);
var last_row = target_sheet.getLastRow();
target_sheet.insertRowAfter(last_row);
var target_range = target_sheet.getRange('C'+(last_row+1));
var source_sheet = ss.getSheetByName('New');
var target_sheet = target.getSheetByName('Info');
var source_range = source_sheet.getRange('D5');
var target_range = target_sheet.getRange('B8');
source_range.copyTo(target_range);
var last_row = target_sheet.getLastRow();
target_sheet.insertRowAfter(last_row);
}
目前,当它运行时,它会正确地将数据添加到正确的列中,但是
1)它不会将数据插入到下一个单元格中,保留先前插入的数据。- 它覆盖当前的前一个条目,而不是向下移动一行并创建新数据。
2)当我运行它时,它也会添加一堆空白行。
3)如果有更简单的方法来做到这一点,那也很棒!如果有人能让我走上正确的轨道或让第一个表格正确输出,那么我可以完成剩下的工作,我将永远感激不尽!
如果有帮助,这里是我的项目的一个非常简单的版本: https ://docs.google.com/spreadsheets/d/1i192uK-a-ALim7pvL-mkty_1nh_m9aghvmrxmiiRYKs/edit?usp=sharing
我对工作表“新建”中的输入表单进行了颜色编码,以匹配工作表“名册”和“信息”上我想要的输出。
如果他们有贝宝或苹果支付,我也很乐意给他们几美元的小费
解决方案
这个改装怎么样?在此修改中,它检索值“D3:D15”并将每个值放入工作表“Roster”和“Info”最后一行的下一行。
修改后的脚本:
function NewBand() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetNew = ss.getSheetByName('New');
var sheetRoster = ss.getSheetByName('Roster');
var sheetInfo = ss.getSheetByName('Info');
var values = sheetNew.getRange("D3:D15").getValues();
var D3, D5, D7, D9, D11, D13, D14, D15;
[D3, _, D5, _, D7, _, D9, _, D11, _, D13, D14, D15] = Array.prototype.concat.apply([], values);
sheetRoster.appendRow([,null,D3,D7,null,null,null,null,null,D9,null,null,null,null,null,null,D11]);
sheetInfo.appendRow([null,D5,D14,D15,null,null,null,D11]);
}
笔记:
- 在这个脚本中,它假设最后一行的下一行如下。
- 除了“名册”表中的 C、D、J 和 Q 之外的列中没有值
- 除了“信息”表中的 B、C、D 和 H 之外,列中没有值。
参考:
推荐阅读
- .net - 如何在 Visual Basic 中执行任务而不阻塞程序的其余部分
- kubernetes-helm - 如何为子掌舵图设置不同的命名空间?
- c - C / x64 ASM 中的实用定界延续
- c# - Unity中的弹性对象?
- join - 子查询连接
- r - R quantstrat:尽管有所有信号,但没有完成交易
- php - 如何使php中的html表格内部回显正常比赛
- php - if语句在where子句mysql语法错误
- kotlin - RxKotlin repo gradle build compilation fails with gradle 4.7 (JDK 1.8)
- vba - VBA ByRef argument type mismatch of 'i' within a For Loop