在同一 sheet 上移动多个非相邻行
Move multiple non adjacent rows on same sheet
我正在尝试将不相邻的行移动到同一 sheet 上的特定行,但我无法让它工作。到目前为止我有以下代码:
function moveRows() {
var sheet = SpreadsheetApp.getActiveSheet();
var rowSpec = sheet.getRangeList(["B11","B15"]);
sheet.moveRows("B2","B12")
}
然而returns出现以下错误:
Exception: The parameters (String,String) don't match the method
signature for SpreadsheetApp.Sheet.moveRows. moveRows @ Code.gs:4
根据我的搜索,我还没有找到移动多个不相邻行的方法,所以我的第一个问题是:这可能吗?
如果没有,是否有解决方法?如果有,方法是什么?
这是我正在研究的sheet:https://docs.google.com/spreadsheets/d/1BKOxgZmAIoAzpmrF5NBChjFMXheyUEkf7SXVXCJs3zw/edit?usp=sharing
修改点:
- 在您的脚本中,未使用
var rowSpec = sheet.getRangeList(["B11","B15"]);
。
moveRows(rowSpec, destinationIndex)
的参数是 rowSpec
(范围)和 destinationIndex
(整数)。
- 根据
I am trying to move non-adjacent rows to specific rows on the same sheet
和你的展示脚本,我认为你可能想从第2行移动到第12行。如果我的理解是正确的,修改如下?
修改后的脚本:
function moveRows2() {
var obj = [{"fromRow": 2, "toRow": 12}];
var sheet = SpreadsheetApp.getActiveSheet();
obj.forEach(({fromRow, toRow}) =>
sheet.moveRows(sheet.getRange(`${fromRow}:${fromRow}`), toRow)
);
}
当此脚本为运行时,第 2 行移动到第 11 行。
如果要移动其他行,请将其添加到obj
,如var obj = [{"fromRow": 2, "toRow": 12}, {"fromRow": 3, "toRow": 13},,,]
。
或者,根据您的脚本,如果您想将单元格“B2”移动到单元格“B12”,进行以下修改怎么样?
var obj = [{"fromCell": "B2", "toCell": "B12"}];
var sheet = SpreadsheetApp.getActiveSheet();
obj.forEach(({fromCell, toCell}) =>
sheet.getRange(fromCell).moveTo(sheet.getRange(toCell))
);
- 在这种情况下,移动单元格值后的单元格变为空。
参考文献:
我正在尝试将不相邻的行移动到同一 sheet 上的特定行,但我无法让它工作。到目前为止我有以下代码:
function moveRows() {
var sheet = SpreadsheetApp.getActiveSheet();
var rowSpec = sheet.getRangeList(["B11","B15"]);
sheet.moveRows("B2","B12")
}
然而returns出现以下错误:
Exception: The parameters (String,String) don't match the method signature for SpreadsheetApp.Sheet.moveRows. moveRows @ Code.gs:4
根据我的搜索,我还没有找到移动多个不相邻行的方法,所以我的第一个问题是:这可能吗?
如果没有,是否有解决方法?如果有,方法是什么?
这是我正在研究的sheet:https://docs.google.com/spreadsheets/d/1BKOxgZmAIoAzpmrF5NBChjFMXheyUEkf7SXVXCJs3zw/edit?usp=sharing
修改点:
- 在您的脚本中,未使用
var rowSpec = sheet.getRangeList(["B11","B15"]);
。 moveRows(rowSpec, destinationIndex)
的参数是rowSpec
(范围)和destinationIndex
(整数)。- 根据
I am trying to move non-adjacent rows to specific rows on the same sheet
和你的展示脚本,我认为你可能想从第2行移动到第12行。如果我的理解是正确的,修改如下?
修改后的脚本:
function moveRows2() {
var obj = [{"fromRow": 2, "toRow": 12}];
var sheet = SpreadsheetApp.getActiveSheet();
obj.forEach(({fromRow, toRow}) =>
sheet.moveRows(sheet.getRange(`${fromRow}:${fromRow}`), toRow)
);
}
当此脚本为运行时,第 2 行移动到第 11 行。
如果要移动其他行,请将其添加到
obj
,如var obj = [{"fromRow": 2, "toRow": 12}, {"fromRow": 3, "toRow": 13},,,]
。或者,根据您的脚本,如果您想将单元格“B2”移动到单元格“B12”,进行以下修改怎么样?
var obj = [{"fromCell": "B2", "toCell": "B12"}]; var sheet = SpreadsheetApp.getActiveSheet(); obj.forEach(({fromCell, toCell}) => sheet.getRange(fromCell).moveTo(sheet.getRange(toCell)) );
- 在这种情况下,移动单元格值后的单元格变为空。