我有以下脚本:
function onEdit(event) {
// assumes source data in sheet named Needed
// target sheet of move to named Acquired
// test column with yes/no is col 5 or E
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if(s.getName() == "IN" && r.getColumn() == 7 && r.getValue() == "Y") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("ORDERS");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).copyTo(target);
}
}
这是我找到脚本的原始帖子:https://support.google.com/docs/forum/AAAABuH1jm0hR40qh02UWE/?hl=en
我想对代码做一些小的调整,但不知道从哪里开始。
目前,当在G列中输入“Y”时,它复制整行,并将行内容放在ORDERS!的最后一行!。
我想让它做的是:
1) 仅复制订单最后一行上的B、C和E列!2) 在中删除E和F中的值!在为特定行运行代码之后(不希望它删除我没有用“Y”表示的行)3)是否有一种方法可以使用一个按钮,即当单击按钮时,它会立即复制所有带有“Y”的行?
如果您想玩游戏,这里有一个指向我的工作表的链接:https://docs.google.com/spreadsheets/d/1Peo5_5QmkxVyL7j5bmgtMs9BL16cvsGhhOSuRV_TsAo/edit?usp=sharing
致以最良好的祝愿
我相信你的目标如下。
Y
时,您希望将列B、C和E的值复制到工作表ORDERS
的最后一行。
Y
的所有行。对于这个,这个答案怎么样?
需要对上述修改点进行修改。当上述各点反映到脚本中时,它将变成如下所示。
请复制并粘贴以下脚本到脚本编辑器。并请准备一个正在绘图和/或图像的按钮,并将函数run
分配给该按钮。这样,当单击按钮时,脚本就会运行。并且将列G为Y
的所有行的列B、C和E从工作表IN复制到工作表ORDERS的最后一行。
function run() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var srcSheet = ss.getSheetByName("IN");
var dstSheet = ss.getSheetByName("ORDERS");
// 1. Retrieve the values from "A2:G" of sheet "IN".
var srcValues = srcSheet.getRange("A2:G" + srcSheet.getLastRow()).getValues();
// 2. Create an object for putting values and deleting the contents of the columns "E" and "F".
var obj = srcValues.reduce((o, [,b,c,,e,,g], i) => {
if (g == "Y") {
o.values.push([b, c, e]);
o.ranges.push(`E${i + 2}:F${i + 2}`);
}
return o;
}, {values: [], ranges: []});
// 3. Copy the values to the sheet "ORDERS".
dstSheet.getRange(dstSheet.getLastRow() + 1, 1, obj.values.length, obj.values[0].length).setValues(obj.values);
// 4. Delete the contents of the columns "E" and "F" of sheet "IN".
srcSheet.getRangeList(obj.ranges).clearContent();
}
run
分配给该按钮。这样,当单击按钮时,脚本工作
我最近开始在GoogleSheets中做一些工作,以前我可以在Excel中编写函数,但我无法在GoogleSheets脚本中实现这一点。 我有两张床单 第1页。单元格A1-E5包含基于某些选择标准表2的值。登记表 我需要的是在执行脚本时(通过绘图和链接宏) 我需要它来复制A1:E1范围 进入第2页,转到A列的第一个空白单元格,然后粘贴值。 我正在使用下面的脚本,并且 目标范围的坐标超出工作表的尺寸
我写了下面的代码,并不断地看到。我试图克服这个问题,但似乎没有任何效果。我正试图从一个工作簿复制整个工作表,并将其粘贴到另一个工作簿中:
我有一张谷歌表格,里面有多张不同的表格。每次我向第一张工作表的单元格(比如G2: I1000中的任何单元格)添加文本时,我都希望其他几个单元格的值出现在第二张工作表的下一个空行中。例如,如果我在第一张工作表上向I5添加文本,那么我希望自动将单元格A5: B5的值粘贴到第二张工作表(也在列A和B中)的下一个空行。
> 我正在尝试编写一个脚本,它将从一个工作表上的范围复制数据,并在B列的第一个空单元格中粘贴到另一个。我有一个脚本,可以将其粘贴到工作表中的第一个空单元格中这工作正常,但是我在列A中有一行静态的身份证号码,所以当它粘贴数据时,它就在工作表的下面。所以,我需要一种跳过列A并粘贴到列B中的第一个空单元格的方法。希望这有意义。 另一部分是B列中有时会有空单元格。所以它需要跳过这些来获得最后一个空单元格。
我写了一个google脚本来创建和粘贴从一个单元格到另一个单元格的值(相同的电子表格)。该守则包括以下两个步骤: > (不工作):将相邻单元格的新值粘贴到第二张工作表中下一个空行(第1列)的单元格中。 下面的代码是我迄今为止尝试过的代码,但第二页上没有显示该值。有人知道我在下面的尝试中的问题在哪里吗? 谢谢你
我有第一部分,但在挣扎第二部分: