Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 从除谷歌工作表主菜单外的所有工作表中删除3列_Google Apps Script_Google Sheets_Google Apps Script Editor - Fatal编程技术网

Google apps script 从除谷歌工作表主菜单外的所有工作表中删除3列

Google apps script 从除谷歌工作表主菜单外的所有工作表中删除3列,google-apps-script,google-sheets,google-apps-script-editor,Google Apps Script,Google Sheets,Google Apps Script Editor,我没有编程方面的背景,但我正试图在Google Sheets上编写一个脚本,删除工作簿中除“主菜单”之外的前3列。我有61个标签,所以我不想单独删除它们。下面是我通过谷歌搜索得到的结果。我一直看到错误“找不到方法deleteColumns()”。任何帮助都将不胜感激 function QuickDelete() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sss = ss.getSheets(); for (i = 0

我没有编程方面的背景,但我正试图在Google Sheets上编写一个脚本,删除工作簿中除“主菜单”之外的前3列。我有61个标签,所以我不想单独删除它们。下面是我通过谷歌搜索得到的结果。我一直看到错误“找不到方法deleteColumns()”。任何帮助都将不胜感激

function QuickDelete() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sss = ss.getSheets();

  for (i = 0; i < sheets.length; i++) {
     switch(sss[i].getSheetName()) {
     case "Main Menu":
         break;
     default:
        ss.deleteColumns(sss[i]);
    }
  }
}
函数QuickDelete(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sss=ss.getSheets();
对于(i=0;i
我发现有两个问题需要解决

  • 您正在循环查看
    工作表
    。但是您应该在
    sss
    上循环
  • 需要将
    deleteColumns()
    应用于工作表,即
    sss[i]
  • 类似于
    sss[i].deleteColumns(columnPosition,howmount)

    函数QuickDelete(){
    var ss=SpreadsheetApp.getActiveSpreadsheet();
    var sss=ss.getSheets();
    var columnPosition=1;//从第一列删除
    var howMany=3;//删除3列
    对于(i=0;i
    祝您一切顺利。

    • for
      循环中,您使用的是以前未定义的
      工作表。您必须将
      sss
      更改为
      sheets
      ,或者在代码中的任何地方更改

    • 您必须提供两个参数,即要删除的
      第一列的位置和要删除的
      列数。在您的案例中,分别为
      1
      3

    因此,您的代码可以如下所示:

    function QuickDelete() {
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheets = ss.getSheets();
      for (i = 0; i < sheets.length; i++) {
        if (sheets[i].getSheetName() !== "Main Menu") {
          sheets[i].deleteColumns(1, 3)
        }
      }
    }
    
    函数QuickDelete(){
    var ss=SpreadsheetApp.getActiveSpreadsheet();
    var sheets=ss.getSheets();
    对于(i=0;i
    另外,如果有许多
    ,则
    开关
    语句也很有意义,您必须用它检查
    表达式
    。在您的情况下,我最好使用
    if
    检查工作表的名称是否为
    主菜单

    • 参考:

    我尝试了你的方法和ADW的方法,两种方法都有效!还有,我想知道这个!==符号的意思是?@FatinNabilah检查。此外,请考虑接受一个答案,提供了解决您的问题,因为这个社区依赖于这一点,以分享知识给其他用户。
    function QuickDelete() {
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheets = ss.getSheets();
      for (i = 0; i < sheets.length; i++) {
        if (sheets[i].getSheetName() !== "Main Menu") {
          sheets[i].deleteColumns(1, 3)
        }
      }
    }