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

Axi*_*ili 13 google-apps-script google-spreadsheet-api

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

假设我选择A4到B5,按Ctrl + X.
然后我将选择移动到A2.
现在我想"插入切割单元格",可能是插入空白单元格并将虚线范围移动到A2.
截图

有没有办法在自己的菜单上使用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
}
Run Code Online (Sandbox Code Playgroud)

小智 20

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

在此输入图像描述

  • 我是不是疯了,或者最近暂停了CTRL**停止**工作! (4认同)
  • 这个答案并没有真正解决原始问题,尽管这是一个很好的了解.您不能总是非常容易地使用拖放,例如,当行位于不同的工作表上时,当它们相距很远或行非常高时,很难拖动到所需的位置. (3认同)

Han*_*ann 1

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

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

删除数据:使用 getRange 和 setValue = 空白

例子 :

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("");
Run Code Online (Sandbox Code Playgroud)

您可以使用方法copyTo

例子 :

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