Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.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
Javascript 在电子表格中的特定工作表上运行脚本_Javascript_For Loop_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 在电子表格中的特定工作表上运行脚本

Javascript 在电子表格中的特定工作表上运行脚本,javascript,for-loop,google-apps-script,google-sheets,Javascript,For Loop,Google Apps Script,Google Sheets,注意:这是以下内容: 我试图只在指定的图纸上运行此脚本,以便按照代码中的设置绘制边界。有人能帮忙更正代码吗。我在这篇文章中找到了大量信息,我现在对第11行的TypeError:CannotcallmethodgetRangeofNull有问题。如果我能够合并脚本的边框部分,我不确定如何合并 功能指令{ var菜单=[{name:Apply Borders,functionName:Borders}]; SpreadsheetApp.getActiveSpreadsheet.addMenuSet

注意:这是以下内容:

我试图只在指定的图纸上运行此脚本,以便按照代码中的设置绘制边界。有人能帮忙更正代码吗。我在这篇文章中找到了大量信息,我现在对第11行的TypeError:CannotcallmethodgetRangeofNull有问题。如果我能够合并脚本的边框部分,我不确定如何合并

功能指令{ var菜单=[{name:Apply Borders,functionName:Borders}]; SpreadsheetApp.getActiveSpreadsheet.addMenuSet边框,菜单; } 函数边界{ var ss=电子表格app.getActiveSpreadsheet; var sheets=ss.getSheets; 对于i=0;i<6;i++{ var sheet=ss.getSheetByNamesheets[i]; var范围=表。getRangeA2:V1000; var值=range.getValues; var offsetRow=range.getRowIndex; range.false,false,false,false,false,false,false; 电子表格app.flush; 对于变量i=0;i} 不确定是否有更好的方法,但这里有一个解决方案:

var menu = [{name: "Borders for nonempty cells", functionName: "borders"}];
var sheetName = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();

if(sheetName === 'Name of sheet') {
  SpreadsheetApp.getActiveSpreadsheet().addMenu("Set Borders", menu);
}
else {
 SpreadsheetApp.getActiveSpreadsheet().removeMenu("Set Borders");
}

该代码有几个缺陷,这些缺陷使您很难将答案应用于上一个问题

压痕未正确应用 i=0的倍数;i<值。长度;我++ 有一个for循环在另一个for循环中迭代所有工作表,该for循环也迭代所有工作表。 建议

清理你的代码

正确地应用压痕 移动所有

if (values[i][0] && values[i][/*a number */]) { 
  // Call to setBorder
}
合二为一

for (i = 0; i < values.length; i++) {...}
移除forvar i=0;i 添加如果!['Current Sales'、'Pending Orders'、'Subcontract Orders'、'Partial Shipped'、'Quotes'、'Archived Sales']当前销售、'Pending Orders'、'Subcontract Orders'、'Quotes'、'Archived Sales'];var表下方=所有表[s] 功能指令{ var菜单=[{name:Apply Borders,functionName:Borders}]; SpreadsheetApp.getActiveSpreadsheet.addMenuSet边框,菜单; } 函数边界{ var ss=电子表格app.getActiveSpreadsheet; var sheet_name=[“当前销售”、“待定订单”、“分包订单”、“部分装运”、“报价”、“存档销售”];
对于s=0;问题是边框脚本部分正在调用工作表,其中包括所有工作表,而不是选定的工作表。很抱歉,请您澄清是哪一部分?我不确定如何将您的编辑应用于我的脚本。我需要在工作表选项卡“当前销售”、“待定订单”、“分包订单”、“部分装运”、“报价”、“存档销售”上运行脚本s'Use if['name1'、'name2'等]。includesheetnamei仍然无法使此代码正常工作,并且我不确定如何组合我的所有if值[i][0]&值[i][/*一个数字*/]我仍然无法在所选的工作表上运行此代码,我尝试了许多更改,搜索并使用了不同的方法,但都没有成功。@Shane我建议您从头开始。首先在所有工作表上执行一些简单的操作,例如向单元格A1添加值,然后修改该脚本以向某些工作表的A2添加值,等等在上。我不是从零开始,我按照您的建议重新发布了问题。我感谢您的帮助,但它仍然无法帮助我在选定的工作表中更正此问题,您的所有答案在应用到我的代码时都不起作用。