雖然我看到了類似的問題,但如果我沒記錯的話,我沒有看到這個特定的問題。
所以,我需要讀取某一列中的所有資訊(在這種情況下它將是 AF,無論我沒有使用該電子表格來嘗試我所做的事情),然后檢查該列中的單元格是否具有值(或字串,抱歉是 Google 腳本的新手)“已完成”然后將與該單元格對應的整行復制到將存盤所有已完成案例和內容的輔助作業表中。
我一直試圖通過谷歌找到一些東西,但它總是如何復制整個作業表,我認為這沒有用,我所做的 rn 復制單元格,不管該單元格 列上的值是什么
function copyIf() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var source = ss.getSheetByName("Stuff");
var destination = ss.getSheetByName("Terminados");
var condition = source.getRange('D2:D2000').getValue();
if (condition == "Terminado") {
source.getRange('A2').copyTo(destination.getRange('A2'));
source.getRange('A3').copyTo(destination.getRange('A3'));
}
}
我在想我可能應該實作某種 for 或 while 回圈,因為我希望它不斷運行,所以每當有人將某個單元格的狀態更改為 Terminado 以將該行復制到輔助表時。
uj5u.com熱心網友回復:
嘗試這個
function copyIf() {
var feuille = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Stuff");
var archive = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Terminados");
if (feuille.getLastRow()==1){
SpreadsheetApp.getActive().toast('No data!', 'End of script ???')
return
}
var data = feuille.getRange(2,1,feuille.getLastRow()-1,feuille.getLastColumn()).getValues()
var archiveData = []
var lignes = []
var ligne = 1
var col = 31 // AF
try {
data.forEach(function (row) {
if (row[col]=="Terminado") {
archiveData.push(row)
lignes.push(ligne)
}
})
archive.getRange(archive.getLastRow() 1, 1, archiveData.length, archiveData[0].length).setValues(archiveData)
// lignes.reverse().forEach(x => feuille.deleteRow(x));
SpreadsheetApp.getActive().toast('Rows ' lignes.flat() ' hab been archived !', 'End of script ???')
} catch (e) {
SpreadsheetApp.getActive().toast('No data to be archived!', 'End of script ???')
}
}
如果要在處理后洗掉行,請//在之前洗掉lignes.reverse().forEach(x => feuille.deleteRow(x));
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/431127.html
