我正在使用任何型別的編碼語言邁出第一步,已經精通 Excel/Sheets 一段時間,并希望開始自動化一些小事情,以使我和我的團隊的生活更輕松一些。目前我已經成功撰寫它來復制我的模板表并將模板重命名為從名為“創建表”(單元格 J21)的選項卡上的下拉選單中選擇的名稱,但我正在努力讓它重命名新表上的單元格 B1到選定的名稱,這是我復制模板的內容。昨晚我嘗試了一些我通過谷歌和 YouTube 找到的東西,因為我也在模板的副本上寫信給 B1,但沒有成功。
function CreateSheet() {
var app = SpreadsheetApp;
var ss = app.getActiveSpreadsheet();
var TemplateSheet = ss.getSheetByName('Template');
var newSheet = TemplateSheet.copyTo(ss);
var SheetName = ss.getRange("J21").getValue();
// Makes the new sheet the active sheet and renames it to the name in cell 'Create Sheet'J21 //
ss.setActiveSheet(newSheet);
ss.renameActiveSheet(SheetName);
// Renames cell B1 on the new sheet to the name in 'Create Sheet'J21 //
// ** this is where I am needing help **
uj5u.com熱心網友回復:
如果你想在同一個電子表格上用 'Create Sheet'!J21 的值修改新創建的作業表的B1的值,那么你可以使用這個:
let createSheetJ21 = ss.getSheetByName('Create Sheet').getRange('J21').getValue();
ss.getSheetByName(newSheet).getRange('B1').setValue(createSheetJ21);
但是由于您已經將 newSheet 設定為活動的,您可以getActiveSheet替代使用。
ss.getActiveSheet().getRange('B1').setValue(createSheetJ21);
您還可以在(包括作業表名稱)上使用整個 A1 表示法getRange,請參見下面的示例:
let createSheetJ21 = ss.getRange('Create Sheet!J21').getValue();
// Append `!B1` to newSheet variable
ss.getRange(newSheet '!B1').setValue(createSheetJ21);
編輯:
- 將它與您當前的腳本集成,它應該如下所示。這包含一些修改/優化,因為對您當前的存在一些誤解。請參閱下面的評論:
function createSheet() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const templateSheet = ss.getSheetByName('Template');
const createSheet = ss.getSheetByName('Create Sheet');
const sheetName = createSheet.getRange('J21').getValue();
// No need to assign since copyTo doesn't return anything
// By default, this creates a sheet 'Copy of <name of sheet copied>'
templateSheet.copyTo(ss);
// setActiveSheet takes Sheet object as input (not sheetName)
// we need to create Sheet object first using its default name 'Copy of <name of sheet copied>'
const createdSheet = ss.getSheetByName('Copy of Template');
ss.setActiveSheet(createdSheet);
ss.renameActiveSheet(sheetName);
// setValue the cells
createdSheet.getRange('B1').setValue(sheetName);
}
樣本:

輸出:

參考:
- getRange(a1notation)
- 設定值(值)
- setActiveSheet(作業表)
- 復制到(目的地)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/489507.html
標籤:javascript 谷歌表格
下一篇:如何在谷歌表格中拆分和求和
