For loop 如何重复值直到下一个非空行,然后重复下一行';谷歌应用程序脚本中的数据等?
这里的挑战是捕获客户ID及其名称,并在下面重复,直到脚本到达下一个非空行。然后,将重复下一个ID和客户名称 这就是我自己已经走了多远,但我无法构建我自己的逻辑核心(是的)For loop 如何重复值直到下一个非空行,然后重复下一行';谷歌应用程序脚本中的数据等?,for-loop,google-apps-script,google-sheets,For Loop,Google Apps Script,Google Sheets,这里的挑战是捕获客户ID及其名称,并在下面重复,直到脚本到达下一个非空行。然后,将重复下一个ID和客户名称 这就是我自己已经走了多远,但我无法构建我自己的逻辑核心(是的) 函数repeatValues(){ const ss=SpreadsheetApp.getActiveSpreadsheet(); const sheet=ss.getSheetByName(“Sheet1”); const originData=sheet.getRange(6,1,sheet.getLastRow(),3)
函数repeatValues(){
const ss=SpreadsheetApp.getActiveSpreadsheet();
const sheet=ss.getSheetByName(“Sheet1”);
const originData=sheet.getRange(6,1,sheet.getLastRow(),3).getValues();
const targetSheet=ss.getSheetByName(“Sheet2”);
对于(var a=0;a
以下是指向示例电子表格的链接:
预期结果包括以蓝色重复显示的这些值:
感谢您的帮助 我相信你的目标如下
- 您希望实现以下情况。(下图来自您的问题。)您想添加蓝色字体颜色的文本
- 您希望将值放入“Sheet2”
- 在脚本中,位于
const originData=sheet.getRange(6,1,sheet.getLastRow(),3).getValues()代码>,起始行为
。在这种情况下,请将6
修改为sheet.getLastRow()
sheet.getLastRow()-5
- 为了创建用于放入“Sheet2”的数组,需要检查“Sheet1”的“A”和“B”列。为此,在这次修改中,我使用了
,如下所示temp
- 此修改后的脚本适用于示例电子表格。因此,当电子表格的结构发生更改时,脚本可能无法使用。请小心这个
function repeatValues() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName("Sheet1");
const originData = sheet.getRange(6, 1, sheet.getLastRow(), 3).getValues();
const targetSheet = ss.getSheetByName("Sheet2");
for (var a = 0; a < originData.length; a++) {
if (originData[a][0] != ''){
var customerID = originData[a][0];
var customer = originData[a][1];
}
if (originData == ''){
targetSheet.getRange(2,1,originData.length, originData.length).setValue(customerID);
}
}
}
function repeatValues() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName("Sheet1");
const originData = sheet.getRange(6, 1, sheet.getLastRow() - 5, 3).getValues(); // Modified
const targetSheet = ss.getSheetByName("Sheet2");
// I added below script.
let temp = ["", ""];
const putValues = originData.map(([a, b, c]) => {
if (a.toString() && b.toString() && temp[0] != a && temp[1] != b) {
temp = [a, b];
}
return temp.concat(c);
});
targetSheet.getRange(2, 1, putValues.length, putValues[0].length).setValues(putValues);
}