有人提交 Google 表單回復后,他們的回復會轉到 DropRequests表(盡管由于某些原因,該表單目前未鏈接)。
我們想要做的是在某人提交他們的表單并且他們的回應轉到 DropRequests 表之后,如果 C 列中的值與 StudentMatches 表中 F 列的值匹配,則將其移動到 OldMatches 表。我們已經開始使用下面的代碼,但它還沒有作業。關于如何使其發揮作用并解決最后一行范圍問題的任何想法?
function moveMatch(){
var oldmatches = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("OldMatches");
var droprequest = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("DropRequests");
var currentmatches = SpreadsheetApp.openById('1dd9UhD2LpshCFVYizpf3OwI1XzPrq3AfqhMAO1iJ6Ns')
value1 = currentmatches.getRange("F:F").getDisplayValues();
value2 = droprequest.getRange("C:C").getDisplayValues();
for(var i in value1)
if(value2[0,i]=value1){
currentmatches.getDataRange.getRow(0,i).moveTo(oldmatches.getLastRow())
}
}
再次感謝你。
uj5u.com熱心網友回復:
我相信你的目標如下。
- 您的電子表格中有 3 張
DropRequests,StudentMatches,OldMatches。 - 您想從作業
DropRequests表中檢索“C”列的值,并希望將這些值與作業StudentMatches表的“F”列的值進行比較。 - 當值匹配時,您希望將該行從
StudentMatches作業表移動到作業表的第一個空行OldMatches。 - 使用
moveTo時,移動的行變為空行。在你的目標中,你想要這種情況。
在這種情況下,下面的示例腳本怎么樣?
示例腳本:
function moveMatch() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var srcSheet1 = ss.getSheetByName("DropRequests");
var srcSheet2 = ss.getSheetByName("StudentMatches");
var dstSheet = ss.getSheetByName("OldMatches");
var srcValues1 = srcSheet1.getRange("C2:C" srcSheet1.getLastRow()).getValues().map(([c]) => c);
var [,...srcValues2] = srcSheet2.getDataRange().getValues();
var values = srcValues2.flatMap((r, i) => srcValues1.includes(r[5]) ? i 2 : []);
if (values.length == 0) return;
var lastCol = srcSheet2.getLastColumn();
var lastRow = dstSheet.getLastRow();
values.forEach((r, i) => srcSheet2.getRange(r, 1, 1, lastCol).moveTo(dstSheet.getRange(lastRow 1 i, 1)));
}
- 在此修改中,從“DropRequests”和“StudentMatches”的列“C”中檢索值。并且,將“DropRequests”的“C”列的值與“StudentMatches”表的“F”列的值進行比較。當值匹配時,該行從“StudentMatches”移動到“OldMatches”。
筆記:
首先,請再次檢查作業表名稱。
此示例腳本適用于您的問題。因此,當電子表格更改時,此腳本可能無法使用。請注意這一點。
參考:
- forEach()
- 移動到(目標)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/443752.html
上一篇:在受保護的作業表上作為編輯器運行onEdit腳本,而不是所有者錯誤TypeError:無法讀取未定義的屬性“activeSheet”
下一篇:從單元格中提取文本部分
