将记录的值复制到从记录的单元格引用开始


  • 我正试图将表单中的"仅值"复制到数据表中,并将这些值复制到下一个可用的空单元格中。

  • 我是谷歌表单的新手,在完成这项工作时遇到了一些困难,如果有人能帮忙,那就太好了。

  • 值不会在数据范围内复制,只有一列在复制。

代码:


var ss        = SpreadsheetApp.getActiveSpreadsheet();
var formSS    = ss.getSheetByName("NEW/ADD"); //Form Sheet
var datasheet = ss.getSheetByName("reciepedata").getLastRow()+1;

Logger.log(datasheet);

//TITLE Values
var values = [[formSS.getRange("F6").getValues()]];
Logger.log(values);

//TYPE Values
var values = [[formSS.getRange("F7").getValue()]];
Logger.log(values);

//REF Values
var values = [[formSS.getRange("F8").getValue()]];
Logger.log(values);

//SERVES Values
var values = [[formSS.getRange("F9").getValue()]];
Logger.log(values);

//INGREDIENT Values
var values = [[formSS.getRange("D12").getValues()],
[formSS.getRange("D13").getValue()],
[formSS.getRange("D14").getValue()],
[formSS.getRange("D15").getValue()],
[formSS.getRange("D16").getValue()],
[formSS.getRange("D17").getValue()],
[formSS.getRange("D18").getValue()],
[formSS.getRange("D19").getValue()],
[formSS.getRange("D20").getValue()],
[formSS.getRange("D21").getValue()],
[formSS.getRange("D22").getValue()],
[formSS.getRange("D23").getValue()],
[formSS.getRange("D24").getValue()],
[formSS.getRange("D25").getValue()],
[formSS.getRange("D26").getValue()],
[formSS.getRange("D27").getValue()],
[formSS.getRange("D28").getValue()],
[formSS.getRange("D29").getValue()],
[formSS.getRange("D30").getValue()]];
Logger.log(values);

//AMOUNT Values
var values = [[formSS.getRange("E12").getValues()],
[formSS.getRange("E13").getValue()],
[formSS.getRange("E14").getValue()],
[formSS.getRange("E15").getValue()],
[formSS.getRange("E16").getValue()],
[formSS.getRange("E17").getValue()],
[formSS.getRange("E18").getValue()],
[formSS.getRange("E19").getValue()],
[formSS.getRange("E20").getValue()],
[formSS.getRange("E21").getValue()],
[formSS.getRange("E22").getValue()],
[formSS.getRange("E23").getValue()],
[formSS.getRange("E24").getValue()],
[formSS.getRange("E25").getValue()],
[formSS.getRange("E26").getValue()],
[formSS.getRange("E27").getValue()],
[formSS.getRange("E28").getValue()],
[formSS.getRange("E29").getValue()],
[formSS.getRange("E30").getValue()]];
Logger.log(values);

//MEASUREMENT Values
var values = [[formSS.getRange("F12").getValues()],
[formSS.getRange("F13").getValue()],
[formSS.getRange("F14").getValue()],
[formSS.getRange("F15").getValue()],
[formSS.getRange("F16").getValue()],
[formSS.getRange("F17").getValue()],
[formSS.getRange("F18").getValue()],
[formSS.getRange("F19").getValue()],
[formSS.getRange("F20").getValue()],
[formSS.getRange("F21").getValue()],
[formSS.getRange("F22").getValue()],
[formSS.getRange("F23").getValue()],
[formSS.getRange("F24").getValue()],
[formSS.getRange("F25").getValue()],
[formSS.getRange("F26").getValue()],
[formSS.getRange("F27").getValue()],
[formSS.getRange("F28").getValue()],
[formSS.getRange("F29").getValue()],
[formSS.getRange("F30").getValue()]];
Logger.log(values);

//SPECIFICATION Values
var values = [[formSS.getRange("G12").getValues()],
[formSS.getRange("G13").getValue()],
[formSS.getRange("G14").getValue()],
[formSS.getRange("G15").getValue()],
[formSS.getRange("G16").getValue()],
[formSS.getRange("G17").getValue()],
[formSS.getRange("G18").getValue()],
[formSS.getRange("G19").getValue()],
[formSS.getRange("G20").getValue()],
[formSS.getRange("G21").getValue()],
[formSS.getRange("G22").getValue()],
[formSS.getRange("G23").getValue()],
[formSS.getRange("G24").getValue()],
[formSS.getRange("G25").getValue()],
[formSS.getRange("G26").getValue()],
[formSS.getRange("G27").getValue()],
[formSS.getRange("G28").getValue()],
[formSS.getRange("G29").getValue()],
[formSS.getRange("G30").getValue()]];
Logger.log(values);

//METHOD Values
var values = [[formSS.getRange("H12").getValues()],
[formSS.getRange("H13").getValue()],
[formSS.getRange("H14").getValue()],
[formSS.getRange("H15").getValue()],
[formSS.getRange("H16").getValue()],
[formSS.getRange("H17").getValue()],
[formSS.getRange("H18").getValue()],
[formSS.getRange("H19").getValue()],
[formSS.getRange("H20").getValue()],
[formSS.getRange("H21").getValue()],
[formSS.getRange("H22").getValue()],
[formSS.getRange("H23").getValue()],
[formSS.getRange("H24").getValue()],
[formSS.getRange("H25").getValue()],
[formSS.getRange("H26").getValue()],
[formSS.getRange("H27").getValue()],
[formSS.getRange("H28").getValue()],
[formSS.getRange("H29").getValue()],
[formSS.getRange("H30").getValue()]];
Logger.log(values);

datasheet.getRange(datasheet.getLastRow+1, 1, 19, 1).setValues(values);

}```

这样试试:

您会发现尽可能使用setvalues((和getValues((会更快。我使用了getDisplayValues,因为你说你只想要这个值,我认为你的意思是说你的表上可能有公式。

function myfunk101() {
const ss = SpreadsheetApp.getActive();
const ssh = ss.getSheetByName("NEW/ADD"); 
const dsh = ss.getSheetByName("reciepedata");//This sheet name appears to be mispelled but I left it.  I'm guessing it should be "recipedata"
const svs1 = ssh.getRange(7,1,4,1).getDisplayValues();
const svs2 = ssh.geRange(12,4,19,4).getDisplayValues();
dsh.getRange(dsh.getLastRow() + 1, 1,svs1.length,svs1[0].length).setValues(svs1);//this is one column wide
dsh.getRange(dsh.getLastRow() + 1, 1, svs2.length, svs2[0].length).setValues(svs2);//this is 4 wide
}

最新更新