我想將范圍 a21:ay21 復制到新作業表,但公式僅復制第一個值 (a21)。
我堅持下去。謝謝!
function submitToDataBase() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formSS = ss.getSheetByName("form"); //Form Sheet
var datasheet = ss.getSheetByName("Data_Base"); //Data Sheet
//Input Values
var values = [[formSS.getRange("form!a21:ay21").getValues()]];
datasheet.getRange(datasheet.getLastRow() 1, 1, 1, 50).setValues(values);
}
uj5u.com熱心網友回復:
我認為在你的腳本中,values是一個 4 維陣列。并且,a21:ay21有 51 列。如果要使用getValuesand setValues,下面的修改如何?
從:
var values = [[formSS.getRange("form!a21:ay21").getValues()]];
datasheet.getRange(datasheet.getLastRow() 1, 1, 1, 50).setValues(values);
到:
var values = formSS.getRange("form!a21:ay21").getValues(); // formSS.getRange("a21:ay21").getValues();
datasheet.getRange(datasheet.getLastRow() 1, 1, 1, 51).setValues(values);
作為另一種方法,我認為在您的情況下,您可以使用
appendRow如下。var ss = SpreadsheetApp.getActiveSpreadsheet(); var formSS = ss.getSheetByName("form"); //Form Sheet var datasheet = ss.getSheetByName("Data_Base"); //Data Sheet var values = formSS.getRange("form!a21:ay21").getValues(); // formSS.getRange("a21:ay21").getValues(); datasheet.appendRow(values[0]);作為另一種方法,我認為在您的情況下,您可以使用
copyToClass Range 如下。var ss = SpreadsheetApp.getActiveSpreadsheet(); var formSS = ss.getSheetByName("form"); //Form Sheet var datasheet = ss.getSheetByName("Data_Base"); //Data Sheet formSS.getRange("a21:ay21").copyTo(datasheet.getRange(datasheet.getLastRow() 1, 1), { contentsOnly: true });
參考:
- 獲取值()
- 設定值(值)
- 追加行(行內容)
- 復制到(目的地,選項)
uj5u.com熱心網友回復:
這是一個命名范圍嗎?
var values = [[formSS.getRange("form!a21:ay21").getValues()]];
我會嘗試從“form!a21:ay21”中洗掉表單,或者只是使用命名范圍以兩種方式之一撰寫以下內容
var values = [[formSS.getRange("form").getValues()]];
var values = [[formSS.getRange("!a21:ay21").getValues()]];
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/479325.html
