如何在一个Google表格工作簿的多个标签中执行相同的功能?

时间:2019-12-11 12:06:33

标签: google-apps-script google-sheets

我正在尝试在同一工作簿的30个选项卡中执行一个简单的复制粘贴脚本。

工作簿布局-30个NBA球队中的每个都有一个选项卡-每个选项卡被称为一个不同的球队-以及其他三个摘要选项卡(总共33个)。每个特定于团队的选项卡的格式都相同。单元格中的值对于团队的选项卡而言是唯一的,但G列(例如)是30个团队选项卡中每一个的“主队”。

目标-我正在尝试复制D列并将其粘贴到工作簿中每个团队标签的F列中。我的想法是我将为每个选项卡编写脚本,然后在工作簿中将它们串在一起。以下是我为小牛队准备的东西:

function primeMavericks() {
 var ss=SpreadsheetApp.getActive();
 var sh=ss.getSheetByName('Mavericks');
 var rg=sh.getRange('D3:D33');
 var vA=rg.getValues();
 var tsh=ss.getRange('F3:F33');
 tsh.setValues(vA);
}

问题-这对于一个团队来说效果很好,但是第二个我开始在其他团队的函数中输入字符串,脚本开始将D列中的数据粘贴到不同团队的选项卡中。例如,下面将来自湖人队的D列粘贴到快船的F列中。如果我加入其他28支球队,那将是绝对的混乱。

function primeLakers() {
 var ss=SpreadsheetApp.getActive();
 var sh=ss.getSheetByName('Lakers');
 var rg=sh.getRange('D3:D33');
 var vA=rg.getValues();
 var tsh=ss.getRange('F3:F33');
 tsh.setValues(vA);
 primeClippers();
}

function primeClippers(){
 var ss=SpreadsheetApp.getActive();
 var sh=ss.getSheetByName('Clippers');
 var rg=sh.getRange('D3:D33');
 var vA=rg.getValues();
 var tsh=ss.getRange('F3:F33');
 tsh.setValues(vA);
}

我认为这可能是因为我的变量具有相同的名称(尽管嵌套在不同的函数中)。作为尝试的修复,我回过头来使每个变量名都唯一,但仍然遇到相同的复制/粘贴问题。

我不知道该怎么办..是否有更好的方法来运行此脚本以获取预期的结果?

1 个答案:

答案 0 :(得分:2)

只需使用for循环遍历工作表即可。如果要排除特定选项卡,则可以有条件地执行。这样的事情应该起作用:

const routes: Routes = [
    { path: '', component: HomeComponent },
    { path: 'project/:project_name/:category', component: SubpageComponent },
    { path: '404', component: NotFoundComponent },
    //{ path: '**', redirectTo: '404', pathMatch: 'full' }
];

For - JavaScript