簡體   English   中英

在特定電子表格中讀取獨立的 Google Apps 腳本

[英]Read a standalone Google Apps Script in a specific spreadsheet

我有一個腳本,我在從 Google Drive 創建的 Apps 腳本中運行,如下所示:

var ssid="14ESdH--------------------------------HOn8A";

SHEET_NAME = "Chilled Sheet";
SORT_DATA_RANGE = "A3:F";
SORT_ORDER = [
{column: 2, ascending: true}, // 1 = column number, sort by ascending order 
];

function autoSort(){
  var ss=SpreadsheetApp.openById(ssid);
  var sheet = ss.getSheetByName(SHEET_NAME);
  var range = sheet.getRange(SORT_DATA_RANGE);
  range.sort(SORT_ORDER);
}

當我在應用程序腳本中運行此腳本時,該函數會正常工作。 我現在想從工作表中的按鈕運行此功能。 以前,我在位於電子表格本身的腳本中編寫了一個如下所示的腳本:

function onClickButton() {
  var sheet = SpreadsheetApp.getActiveSheet();
  autoSort(sheet);
}

不幸的是,使用它並以各種方式對其進行多次編輯,我無法讓我的工作表上的按鈕讀取onClickButton腳本。 我最終刪除了它,並嘗試使用也沒有工作的按鈕運行腳本autoSort

有沒有人對如何使用激活自動autoSort腳本的按鈕運行工作表有任何想法?

這是您可以遵循的圖表來創建按鈕並將其連接到腳本。

現在參考這個腳本:

function onClickButton() {
  var sheet = SpreadsheetApp.getActiveSheet();
  autoSort(sheet);
}

您應該注意到您正在包括參數“工作表”

但是在這個函數定義中沒有參數。

function autoSort(){
  var ss=SpreadsheetApp.openById(ssid);
  var sheet = ss.getSheetByName(SHEET_NAME);
  var range = sheet.getRange(SORT_DATA_RANGE);
  range.sort(SORT_ORDER);
}

就我個人而言,我總是會在函數定義中包含函數運行所需的所有值。

var ssid="14ESdH--------------------------------HOn8A";
SHEET_NAME = "Chilled Sheet";
SORT_DATA_RANGE = "A3:F";
SORT_ORDER = [
{column: 2, ascending: true}, // 1 = column number, sort by ascending order];

也許您沒有注意到,在注釋正上方的行中,它被放置在 SORT_ORDER 的字符串內,因此這是行不通的。

function autoSort(){
  var SHEET_NAME = "Chilled Sheet";
  var SORT_DATA_RANGE = "A3:F";
  var SORT_ORDER = [{column: 2, ascending: true}];
  var ss=SpreadsheetApp.openById(ssid);
  var sheet = ss.getSheetByName(SHEET_NAME);
  var range = sheet.getRange(SORT_DATA_RANGE);
  range.sort(SORT_ORDER);
}

並且由於它們以任何方式進行了硬接線,因此我會這樣做:

function autoSort(){
  var ssid="14ESdH--------------------------------HOn8A";
  var ss=SpreadsheetApp.openById(ssid);
  var sheet = ss.getSheetByName("Chilled Sheet");
  var range = sheet.getRange("A3:F");
  range.sort([{column: 2, ascending: true}]);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM