我需要帮助 - 这是一个小历史..
我有一个谷歌时间表 - https://docs.google.com/spreadsheet/ccc?key=0ArmKEmhue9OgdEFwMHBldFpGenNVdzJUQThCQU9Qcmc&usp=sharing
在该时间表中,有许多表格,但我希望获得帮助的是表格响应 1 和项目表格
我有一个谷歌表格 - https://docs.google.com/forms/d/1yFy3i5H3abhFjdvchuJq2ARODcfRGo6KNkOageRIMMU/viewform
它链接到 google 时间表,每次提交时,数据都会出现在 Form Responses 1 表中 -
有一个应用于电子表格的脚本 -
复制到/从脚本
/**
* A function named onEdit will be called whenever
* a change is made to the spreadsheet.
*
* @param {object} e The edit event (not used in this case)
*/
function onFormSubmit(e){
var copyFromRange = 'Form Responses 1!A2:AC999';
var copyToRangeStart = 'PROJECTS!A71:AC999';
copyValuesOnly(copyFromRange, copyToRangeStart);
}
/**
* This function will copy the values from a given range to
* a second range, which starts from the given cell reference
*
* @param {string} copyFromRange Range reference eg:
* @param {string} copyToRangeStart Cell reference eg:
*/
function copyValuesOnly(copyFromRange, copyToRangeStart) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var source = ss.getRange(copyFromRange);
source.copyTo(ss.getRange(copyToRangeStart), {contentsOnly: true});
}
这允许数据复制到 PROJECTS 表,以便多个用户可以编辑和更新但意识到每次新提交进入时它都会覆盖数据
还要注意的是,在 C 列“项目编号”下的 Form Responses 1 表中,我放置了一个论坛 =ArrayFormula("MC"&TEXT(ROW(A2:A)-1 ; "000") ) 以允许自动用项目编号对每个提交进行编号
我也有一个 ARCHIVE 脚本 -
项目完成后,如果您键入“完成”,则在 G 列“存档”下,它会移动到存档表
函数 onEdit() {
// moves a row from a sheet to another when a magic value is entered in a column
// adjust the following variables to fit your needs
// see https://productforums.google.com/d/topic/docs/ehoCZjFPBao/discussion
var sheetNameToWatch1 = "PROJECTS";
var sheetNameToWatch2 = "ADVERTISING";
var columnNumberToWatch = 7; // column A = 1, B = 2, etc.
var valueToWatch = "DONE";
var sheetNameToMoveTheRowTo = "ARCHIVE";
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getActiveCell();
if ( (sheet.getName() == sheetNameToWatch1 || sheet.getName() == sheetNameToWatch2) && range.getColumn() == columnNumberToWatch && range.getValue() == valueToWatch) {
var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo);
var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).moveTo(targetRange);
sheet.deleteRow(range.getRow());
}
}
问题 - 复制- 使用表单输入新提交时,数据进入表单响应 1 表,然后复制到项目表但您无法编辑项目下的数据,因为每次提交都会覆盖任何编辑并引入原始表单提交数据-
我希望发生的是数据进入表单响应 1 表,然后在每次提交时复制到 PROJECTS 表,但是当新提交进入时不会覆盖并且对 PROJECTS 下数据的任何更改都保留在那里
问题 - 项目编号- 表格响应 1 表下 C 列第 2 行下的公式设置 - 每一行都分配了一个项目编号,然后它复制到项目表,然后该行被存档(“完成)并移动到存档表分配给该行的项目编号随之而来,但是当您提交新项目时,相同的编号可以应用于新项目,因此最终当您归档所有项目时,许多项目将具有相同的项目编号,有没有办法让每个项目都有唯一的项目编号?
*问题 - 提交表格 * - 我不知道为什么,但是当有新的提交进入时,数据每次都会出现在第 113 行,而不是在表单响应行的末尾?
任何帮助将不胜感激 - 我认为它会起作用,但似乎脚本不是我希望它做的正确设置
非常感谢,保拉 G