如果B列中单元格中的数据只有a或B作为倒数第二个字母-(位置G08B1的示例(-将该行复制到另一个工作表。
如果某个单元格有某个单词,我会使用复制行的修改版本,所以不知道如何根据需要修改它。
function CopyAorBLocation() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if(s.getName() == "FORKLIFT" && r.getColumn() == 7 && r.getValue() == copy AorB if 2nd last letter - if not ignore)
{
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSS =
SpreadsheetApp.openById("");
s = SpreadsheetApp.getActiveSheet();
var tempSheet = s.copyTo(targetSS);
var targetSheet = targetSS.getSheetByName("ONLINERELOCATION");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
tempSheet.getRange(row, 4, 1, 3).copyTo(target);
希望这不会太复杂而难以实现。
提前感谢
- 输入和输出样本值分别为列"B"和列"C:D">
- 您希望将列"B"的值放在列"C"one_answers"D"的后面,后面是"B"列每个值的倒数第二个字符。
- 将值
###A#
和###B#
放在列"C"中 - 将值
###C#
和###D#
放在"D"列中
- 将值
- 你想使用谷歌应用程序脚本来实现这一点
我可以像上面一样理解。如果我的理解是正确的,这个答案怎么样?请将此视为几种可能的答案之一。
在这个答案中,每个值的倒数第二个字符由substring()
检索。
示例脚本:
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet1");
var srcValues = sheet.getRange(2, 2, sheet.getLastRow() - 1, 1).getValues();
var dstValues = srcValues.map(function([b]) {
var len = b.length;
var s = b.substring(len - 2, len - 1).toUpperCase();
return (s == "A" || s == "B") ? [b, ""] : (s == "C" || s == "D") ? ["", b] : ["", ""];
});
sheet.getRange(2, 3, dstValues.length, 2).setValues(dstValues);
}
- 在此示例脚本中,使用了
Sheet1
注意:
- 此示例脚本适用于您的共享电子表格。如果格式与共享的电子表格不同,则脚本可能无法工作。请小心
参考:
- substring((