0
我已经看了看,并尝试修改一些脚本,但是卡住了。Google表格将一张纸上的几个单元格值传递给新的纸张行的脚本
有人可以帮助/告诉我如何在一张纸上添加特定单元格的集合,并使用这些值填充第二张纸上的下一个可用行?请。这是我有:
function AddToDB2() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var target = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheet = ss.getSheetByName("PurchaseOrder");
var targetSheet = target.getSheetByName("DataBase");
var range = ss.getDataRange();
var values = range.getValues();
var date1 = values[1][6]; //these values are collected from multiple cells not in a specific row or col
var po = values[2][6];
var vendor = values[7][0];
var shipto = values[7][3];
//this was for testing that the values were grabbed correctly.
var data = [date1,po,vendor,shipto];
// I don't think this part is even close
var lastRow = targetSheet.getLastRow()
var rowData = values[0]
var newData = []
for(n=1;n<lastRow;++n){newData.push(rowData)}
targetSheet.getRange("C2:H"+lastRow).setValues(newData);
}
这是我想出了另一种方式:
function addToDB() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var target = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheet = ss.getSheetByName("PurchaseOrder");
var targetSheet = target.getSheetByName("DataBase");
var sourceRangePO = sourceSheet.getRange("G3");
var poValues = sourceRangePO.getValues();
if(poValues != "") {
var sourceRangeDate = sourceSheet.getRange("G2");
var targetRangeDate = targetSheet.getRange("A2");
var dateValues = sourceRangeDate.getValues();
targetRangeDate.setValues(dateValues);
var sourceRangePO = sourceSheet.getRange("G3");
var targetRangePO = targetSheet.getRange("B2");
var poValues = sourceRangePO.getValues();
targetRangePO.setValues(poValues);
var sourceRangeVendor = sourceSheet.getRange("A8");
var targetRangeVendor = targetSheet.getRange("C2");
var vendorValues = sourceRangeVendor.getValues();
targetRangeVendor.setValues(vendorValues);
var sourceRangeShipTo = sourceSheet.getRange("D8");
var targetRangeShipTo = targetSheet.getRange("D2");
var shipToValues = sourceRangeShipTo.getValues();
targetRangeShipTo.setValues(shipToValues);
targetSheet.insertRowAfter(1);
Browser.msgBox("Your PO has beed saved!");
}
else { Browser.msgBox("Please enter a PO number"); }
}
哦,那么近。非常感谢你!你可以评论我在原始问题代码下添加的代码块吗?我在想,如果那会比你帮助我的效率更高或更低。对于我来说,表格中数据的位置并不重要,所以我想出了做同样的事情。 – tsmialek
我的方式更高效。处理数组通常是。我改变了我的代码,像你一样写给A-D。如果您确实使用了代码,请将setValues更改为setValue。如果我帮忙,请批准我的答案。谢谢。如果你想分享你的电子表格,我可能会有更多的想法。我曾与很多PO合作过。 –
非常感谢!我一定会用你帮助我的原始代码。如果你能看一看就太好了。我也在研究“搜索”功能来查找和填充采购订单。目前为止这么好......我想。与您分享的最佳方式是什么?再次感谢。 – tsmialek