我一直在尋找解決問題的方法,但到目前為止沒有任何成功。我是 AppsScript GoogleSheet 的真正初學者,因此對于有經驗的用戶來說,我的問題可能真的是微不足道的。
我的問題是我創建了幾個腳本,主要用于隱藏/取消隱藏行和列,現在我想在同一個電子表格中的所有現有和新創建的作業表中實作這些腳本。我的電子表格是一種表格,因此其中的每張表格都是相同的 - 因此代碼可能在相同的條件下作業,但在不同的表格中。
在這件事上我能請你幫忙嗎?
這是我的代碼示例:
function hideRow2()
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var dropDown = sheet.getRange('B140:G140').getValue();
if(dropDown == "NIE")
{
sheet.hideRows(141,5);
}
else if(dropDown == "TAK")
{
sheet.showRows(140,6);
}
else if(dropDown == "")
{
sheet.showRows(140,6);
}
else
{
}
}
我試圖實作這樣的代碼來重復相同的腳本:
function everysheet() {
var ss = SpreadsheetApp.getActive();
var allsheets = ss.getSheets();
var allsheets = ss.getSheets();[0].getSheetName()
allsheets.forEach(function(sheet){
if(sheet.getSheetName() !=="Arkusz4"){
sheet.activate();
hideRow2();
}
})
}
但即使 AppsScript 沒有錯誤,代碼本身也不起作用。
我會很感激你的幫助。
uj5u.com熱心網友回復:
如果您的所有作業表都相同,那么只要您以用戶身份訪問它們,這應該在活動作業表上作業。
function hideRow2() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getActiveSheet();
var dropDown = sheet.getRange('B140').getValue();
if (dropDown == "NIE") {
sheet.hideRows(141, 5);
} else if (dropDown == "TAK") {
sheet.showRows(140, 6);
} else (dropDown == "") {
sheet.showRows(140, 6);
}
}
uj5u.com熱心網友回復:
作為快速修復,您可以在函式中添加一個引數hideRow2():
function hideRow2(sheet)
{
洗掉行:
var sheet = ss.getSheets()[0];
并以這種方式傳遞sheetfrom 函式everysheet():
hideRow2(sheet);
或者您可以用以下代碼替換所有代碼:
function everysheet() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
// get all sheets except 'Arkusz4'
const sheets = ss.getSheets().filter(s => s.getName() != 'Arkusz4');
// loop through the sheets
sheets.forEach(sheet => {
let dropDown = sheet.getRange('B140').getValue();
if (dropDown == 'NIE') sheet.hideRows(141, 5);
else if (dropDown == 'TAK' || dropDown == '') sheet.showRows(140, 6);
})
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/494454.html
標籤:谷歌应用脚本
