google-apps-script - 如何在新行下添加新行的脚本
问题描述
所以基本上我有一个用于添加新行的宏:
function Row() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('66:66').activate();
spreadsheet.getActiveSheet().insertRowsAfter(spreadsheet.getActiveRange().getLastRow(), 1);
spreadsheet.getActiveRange().offset(spreadsheet.getActiveRange().getNumRows(), 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
spreadsheet.getRange('D74').activate();
它在最后一行之后添加了一行,但是每当我再次使用宏时,它都会在新行之间而不是在新行下添加新行。
还有一种方法可以完全复制前一行的格式吗?
谢谢!
解决方案
这会在最后一个包含内容的行之后插入一个新行,并复制其格式。
function newRowAfterContent() {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.insertRowAfter(sheet.getLastRow());
sheet.getRange(sheet.getLastRow(), 1, 1, sheet.getLastColumn()).copyFormatToRange(sheet, 1, sheet.getLastColumn(), sheet.getLastRow() + 1, sheet.getLastRow() + 1);
}
对于您使用表格的情况:
function newRowAfterNamedRange() {
var sheet = SpreadsheetApp.getActiveSheet();
var namedRangeObj = sheet.getNamedRanges()
.find((range) => range.getName() == "MyRange");
var namedRange = namedRangeObj.getRange();
sheet.insertRowAfter(namedRange.getRow() + namedRange.getHeight() - 1);
sheet.getRange(namedRange.getRow() + namedRange.getHeight() - 1, namedRange.getColumn(), 1, namedRange.getWidth()).copyFormatToRange(sheet, namedRange.getColumn(), namedRange.getColumn() + namedRange.getWidth() - 1, namedRange.getRow() + namedRange.getHeight(), namedRange.getRow() + namedRange.getHeight());
namedRangeObj.setRange(sheet.getRange(namedRange.getRow(), namedRange.getColumn(), namedRange.getHeight() + 1, namedRange.getWidth()));
}
推荐阅读
- c# - WPF 通过文件对话框选择图像并将其插入到特定大小
- ios - Firebase 读取/保存数据以将其用作列表 | 斯威夫特/火力基地
- windows - 如果 BkGd 进程准备好接收密钥,客户端进程将密钥发送到 BkGd 进程,后者将它们放入 KeyBoard 缓冲区
- r - 使用 log10 trans 带误差线的条形图
- c - 执行不带 ./ 的编译后的可执行 C 文件
- swift - Xcode 9.2 - 标签值已更新但未在模拟器中显示
- c++ - 你如何确定 MySQLCPPConn 库文件在哪里?
- android - Android Studio - MainActivity.java 看不到 id 属性
- python - Python OR 运算符问题
- python - 安装 chaco [anaconda] UnsatisfiableError 冲突 chaco mkl_fft