Google电子表格 - 插入剪切/复制的单元格/行

时间:2015-04-29 07:41:17

标签: google-apps-script google-spreadsheet-api

Google电子表格没有像Excel中那样“插入剪切单元格”的功能。

假设我选择A4到B5,按Ctrl + X.
然后我将选择移动到A2 现在我想“插入切割单元格”,可能是通过插入空白单元格和moving虚线范围到A2 screenshot

有没有办法在your own menu上使用JavaScript?

例如

function insertCutOrCopiedCells(){
  var SS = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = SS.getActiveSheet();
  var cell = sheet.getActiveCell();

  // How do you get the cells being cut/copied? (ie. A4 to B5)

  // We can then insert empty cells (2 cols 2 rows) at the selection (A2)
  // and move the cut cells (A4 to B5) there
}

3 个答案:

答案 0 :(得分:18)

要在Google工作表中实现插入剪切单元格功能,只需使用拖放即可。首先突出显示要移动的行,然后将鼠标悬停在行号上(您将看到手形图标);然后,按住左键单击,并将鼠标放在行号上,您将看到插入位置的暗线。放开鼠标按钮,然后瞧。

enter image description here

答案 1 :(得分:0)

我认为,你可以分开这个功能。

复制:将getRange与getValue一起使用: link => https://developers.google.com/apps-script/reference/spreadsheet/sheet

删除数据:将getRange与setValue = blank

一起使用

示例:

var Spreadsheet=
 SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName("number1"); 
 var value = Spreadsheet.getRange(1,0).getValue();  // copy  
 Spreadsheet.getRange(1,1).setValues(value); // insert
 Spreadsheet.getRange(1,0).setValues("");

您可以使用方法复制

示例:

var sheet = SpreadsheetApp.getActiveSheet();
 sheet.getRange("A:E").copyTo(sheet.getRange("F1"), {contentsOnly:true});
 }

答案 2 :(得分:0)

您有两种方法,请在课程Range中查看。

moveTo(target)

  

从此范围剪切并粘贴(格式和值)到目标范围。

copyTo(destination)

  

将一系列细胞中的数据复制到另一个细胞范围。值和格式都被复制。

编辑:

要完成您还必须使用的功能:

电子表格中的

insertRowsAfter(afterPosition, howMany)

  

在给定的行位置后插入多行。

getActiveRange()getRow()一起检查选择的位置:

  

返回当前被视为活动的单元格范围。这通常表示用户在活动工作表中选择的范围,但在自定义函数中,它指的是正在重新计算的单元格。

由于您没有直接访问剪贴板,因此您必须设置侧边栏或无模式对话框,要求从中复制范围,并将其粘贴到所选区域或者相反,将当前选定的区域粘贴到一个输入的ROW上。