标签: google-sheets-macros

谷歌脚本错误“您无权调用创建(第 38 行,文件“宏”)”

var newSpreadsheet = SpreadsheetApp.create("Spreadsheet to export");
Run Code Online (Sandbox Code Playgroud)

我正在运行 Google Sheet 脚本,并且在上面的代码行中收到以下错误消息。知道如何解决这个问题吗?我是新手。

错误信息:

您无权调用 create(第 38 行,文件“宏”)

google-sheets google-apps-script google-sheets-macros

8
推荐指数
1
解决办法
1万
查看次数

将谷歌表行编码为 base64 字符串

我有一个多列的谷歌表。我希望将每一行的值组合成一个字符串并将该字符串转换为 base64。

示例:工作表数据

A1           B1         C1        D1                         E1    
NewYork     Smith      kalk       smith@gmail.com          468783778
Run Code Online (Sandbox Code Playgroud)

细绳:

NewYork,Smith,kalk,smith@gmail.com,468783778
Run Code Online (Sandbox Code Playgroud)

结果 base64:

TmV3WW9yayxTbWl0aCxrYWxrLHNtaXRoQGdtYWlsLmNvbSw0Njg3ODM3Nzg=

base64 google-sheets-api google-sheets-macros

5
推荐指数
1
解决办法
3423
查看次数

使用 Google Apps 脚本对行进行分组

我正在编写代码,用户可以在其中自动生成课程和子主题的模板。每课有 10 个小主题。

我还需要按课程和主题对行进行分组。

在此输入图像描述

但是,我无法按课程和主题对行进行分组。尝试使用宏记录器,但代码在生成多个课程时不起作用。

编辑:工作代码更新如下。

  function shiftrowgroupdepth() {
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getActiveSheet();


  // start from row 6 and column 2
  var row = 6;
  var col = 2;

  //Ask user for the no. of lessons
  var shlen = Browser.inputBox("Enter no of lessons", Browser.Buttons.OK_CANCEL);

  for (var i = 1; i <= shlen; i++) {

   sheet.getRange(row,col).setValue("Lesson " + i);
   row++;

    Logger.log(spreadsheet.getCurrentCell().getRow())
   sheet.getRange(row, 1, 70, sheet.getMaxColumns()).activate()
  .shiftRowGroupDepth(1);

   // Add sub-topics (1.1, 1.2 ....)

   for (var j=1;j<=10;j++){

     sheet.getRange(row,col).setValue(i+"."+j);
     sheet.getRange(row+1, …
Run Code Online (Sandbox Code Playgroud)

google-sheets google-apps-script google-sheets-macros

5
推荐指数
1
解决办法
9071
查看次数

为什么 copyTo(... PASTE_VALUES) 在宏中间不起作用?

我长期使用电子表格的技术之一是就地复制/粘贴特殊值 (C/PSV)。使用公式生成我感兴趣的值 IC/PSV,然后可以删除源数据。

所以我写了一个使用这种技术的宏,但单元格最终是空的。但如果我将宏分成两个,在 C/PSV 之前结束第一个宏,那么一切都会按预期进行。为什么是这样?有没有更好的方法来解决这个问题?这是我的三个宏。

function Step1() {
  var spreadsheet = SpreadsheetApp.getActive();
  var range = spreadsheet.getActiveRange();
  CopyRangeToNewSheet(spreadsheet, range);
  spreadsheet.getCurrentCell().offset(-1, 6).activate();
  FillInHeaders(spreadsheet);
  spreadsheet.getCurrentCell().offset(1, -4).activate();
  FillInFormulas(spreadsheet);
  spreadsheet.getCurrentCell().offset(0, -4, range.getNumRows(), 5).activate();
  spreadsheet.getCurrentCell().offset(0, 0, 1, 5).copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
};

function Step2() {
  var spreadsheet = SpreadsheetApp.getActive();
  var keepers = spreadsheet.getRange('G:J');
  keepers.activate();
  keepers.copyTo(keepers, SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  var discard = spreadsheet.getRange('A:F')
  discard.activate();
  spreadsheet.getActiveSheet().deleteColumns(discard.getColumn(), discard.getNumColumns());
};

function BothSteps() {
  var spreadsheet = SpreadsheetApp.getActive();
  var range = spreadsheet.getActiveRange();
  CopyRangeToNewSheet(spreadsheet, range);
  spreadsheet.getCurrentCell().offset(-1, 6).activate();
  FillInHeaders(spreadsheet);
  spreadsheet.getCurrentCell().offset(1, -4).activate();
  FillInFormulas(spreadsheet);
  spreadsheet.getCurrentCell().offset(0, -4, …
Run Code Online (Sandbox Code Playgroud)

google-sheets google-apps-script google-sheets-macros

2
推荐指数
1
解决办法
3253
查看次数

使用 Apps 脚本以 Excel 格式将 Google Sheet 导出到 Google Drive

我想将我的 Google 电子表格的备份创建到我的 Google Drive 文件夹中,但作为 Excel 文件。我设法创建了一个代码来创建 gsheet 的副本并将其保存到文件夹中,但我无法更改代码以将其保存为 Excel 文件。

你能帮我吗?

function makeCopy() {
  var formattedDate = Utilities.formatDate(new Date(), "CET", "yyyy-MM-dd' 'HH:mm");
  var name = "Backup Copy " + formattedDate;
  var destination = DriveApp.getFolderById("1vFL98cgKdMHLNLSc542pUt4FMRTthUvL");
  var file = DriveApp.getFileById("2SqIXLiic6-gjI2KwQ6OIgb-erbl3xqzohRgE06bfj2c")
  file.makeCopy(name, destination);
}
Run Code Online (Sandbox Code Playgroud)

export-to-excel google-sheets google-apps-script google-sheets-macros

1
推荐指数
1
解决办法
4570
查看次数

谷歌表格推卸文本以适应脚本

我正在尝试使用 Google 表格让文本自动调整大小以适应其单元格。我将单元格宽度设置为特定大小,并且电子邮件和职位等内容可能会变得很长。

我知道 Google 表格本身并不像 Excel 那样支持缩小文本以适应(为什么!!!!!!),但是有没有我可以运行的脚本可以实现同样的目的?

google-sheets google-apps-script google-sheets-macros

1
推荐指数
1
解决办法
1057
查看次数