我做了一個簡單的用戶界面來獲取用戶資料。它獲取一些條目,將其放入指定的資料庫,然后清除表單。這樣做很好。雖然第0到6列是用戶資料,但第7到11列是使用0到6列資料的公式。我正在尋找一個解決方案,用戶不必輸入資料,然后手動需要復制上述公式。我不想事先輸入公式,因為我認為會有一個問題,因為腳本會尋找最后一行。
因此,簡而言之:它需要找到作業表的最后一行,將資料寫入新的一行,并將第7至11列的公式從上面的一行復制到新的一行。我是個新手,這有什么意義嗎?
function submitData(){
var ss = SpreadsheetApp.getActiveSpreadsheet()。
var formSS = ss.getSheetByName("Form") 。
var datasheet = ss.getSheetByName("資料庫")。
var values = [[formSS.getRange("d3"/span>).getValue()
formSS.getRange("d5").getValue()。
formSS.getRange("d7").getValue()。
formSS.getRange("d9").getValue()。
formSS.getRange("d11").getValue()。
formSS.getRange("d13").getValue() ] ]
datasheet.getRange(datasheet. getLastRow() 1,1,1,6)。) setValues(values)
formSS.getRange("d3").clearContent() 。
formSS.getRange("d5"/span>).clearContent()。
formSS.getRange("d7"/span>).clearContent()。
formSS.getRange("d9"/span>).clearContent()。
formSS.getRange("d11"/span>).clearContent()。
formSS.getRange("d13"/span>).clearContent()。
}
uj5u.com熱心網友回復:
有幾個選項可以解決你的任務:
選項1:當為要插入的行生成一個資料陣列時,你可以從前一行讀取公式,并在插入前將其添加到陣列中
...
var values = [formSS.getRange("d3"/span>).getValue()。
formSS.getRange("d5").getValue()。
formSS.getRange("d7").getValue()。
formSS.getRange("d9").getValue()。
formSS.getRange("d11").getValue()。
formSS.getRange("d13").getValue() ] 。
lastRow = datasheet.getLastRow()。
formulas = datasheet.getRange(lastRow,7,1,5) 。 getFormulasR1C1()。
datasheet.getRange(lastRow 1,1,1,11) 。 setValues([[...values,...formulas[0] ])
...
選項2.你可以直接在腳本中插入公式,而不必從作業表中讀取公式
...
var values = [[formSS.getRange("d3").getValue()。
formSS.getRange("d5").getValue()。
formSS.getRange("d7").getValue()。
formSS.getRange("d9").getValue()。
formSS.getRange("d11").getValue()。
formSS.getRange("d13").getValue()。
'=FormulaR1C1 for column 7'。
`=IMPORTXML(R1C2&R[0]C[-6]&"/","//div[@class='priceValue ']")`。
'=FormulaR1C1 for column 9'。
'=FormulaR1C1 for column 10',
'=FormulaR1C1 for column 11', ]]
datasheet.getRange(datasheet. getLastRow() 1,1,1,11)。) setValues(values)
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/330559.html
標籤:
