[英]how to change value in a range of cell to a data array in google AppScript?
如何在單元格范圍內提取數據,然后將這些值推送到數據數組中?
在這段代碼中,我嘗試在 E2:E97 范圍內獲取這些值,然后將這些值推送到數組,例如 [E2 值、E3 值等],然后使用 dataS.getRange(dataS.getLastRow()+ 將值設置為數據庫表1).setValue(值);
但似乎我無法用這些代碼完成它。 所以有什么想法嗎?
// Save Data
function saveData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formS = ss.getSheetByName("newform");
var dataS = ss.getSheetByName("newdb");
var dataBaseNameColIndex = 1;
var formDataRange = ['E2:E97'];
var ui = SpreadsheetApp.getUi();
var response = ui.alert(
'Save Data ?',
ui.ButtonSet.YES_NO);
// Process the user's response.
if (response == ui.Button.YES) {
for (var i = 2; i < formDataRange.length; i++) {
var value = formS.getRange(formDataRange[i], 5).getValue();
dataS.getRange(dataS.getLastRow() + 1).setValue(value);
console.log(saveData);
}
}
}
與其嘗試逐個單元格地復制和粘貼數據,不如在一個 go 中進行。 那會更有效率。
所以而不是:
var value = formS.getRange(formDataRange[i], 5).getValue();
您可以在沒有for
循環的情況下使用以下內容:
var allValues = formS.getRange('E2:E97').getValues();
然后像這樣將數據發布到新范圍:
dataS.getRange(dataS.getLastRow() + 1, 2, allValues.length, allValues[0].length).setValues(value);
我假設您想將數據粘貼到第 2 列以后。 相應地調整上面getRange()
中的第二個值。
上面getRange()
中的第 3 和第 4 個值是要過去的行數和列數。 allValues.length
是數據的行數。 在這種情況下,它將是 95。
和allValues[0].length
將是復制數據的頂行中的列數。 在這種情況下,它應該是一個。
我建議采用這種方式,因為如果您稍后更改復制范圍尺寸,您將不需要繼續擺弄行數和列數。
PS:
dataS.getRange(dataS.getLastRow() + 1).setValue(value);
缺少getRange()
中的列號
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.