作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 ahab 的自定义 Google Apps 脚本 myImportRange
。我不熟悉编写自定义脚本,但我按照现有帖子中的说明进行操作,并将以下内容复制并粘贴到脚本编辑器中:
// to be used in the spreadsheet like ImportRange,
// i.e. like this: =myImportRange( "key" ; "sheet!range" ; GoogleClock() )
// the third parameter - GoogleClock() - triggers an automatic update every minute.
// updated 2011-07-17 (ahab): better regex to strip sheetname of *outer* single quotes
function myImportRange(key ,sheetrange) {
var shra = sheetrange.split("!") ;
if (shra.length==1) shra[1]=shra[0], shra[0]="";
var sheetstring = shra[0].replace( /^'(.*)'$/g , "$1") // was: replace( /'/g , "") ; updated 2011-07-17 (ahab)
var rangestring = shra[1]
var source = SpreadsheetApp.openById( key )
if ( sheetstring.length==0 ) sheet = source.getSheets()[0] ;
else sheet = source.getSheetByName( sheetstring ) ;
return sheet.getRange( rangestring ).getValues();
}
我现在收到以下错误:
TypeError: Cannot call method "split" of undefined. (line 6)
如果这是一个重复的问题,我很抱歉,我发现了很多与这个主题相关的话题,不幸的是,如果这种事情是如此基础,我无法弄清楚其他答案与我的脚本有何关系。
如果有任何建议,我将不胜感激!
最佳答案
由于错误不够明确,添加类型检查将改善对用户未提供字符串形式的范围的反馈。
// to be used in the spreadsheet like ImportRange,
// i.e. like this: =myImportRange( "key" ; "sheet!range" ; GoogleClock() )
// the third parameter - GoogleClock() - triggers an automatic update every minute.
// updated 2011-07-17 (ahab): better regex to strip sheetname of *outer* single quotes
function myImportRange(key ,sheetrange) {
if (typeof(sheetrange) != "string" throw new Error("range must be a string");
var shra = sheetrange.split("!") ;
if (shra.length==1) shra[1]=shra[0], shra[0]="";
var sheetstring = shra[0].replace( /^'(.*)'$/g , "$1") // was: replace( /'/g , "") ; updated 2011-07-17 (ahab)
var rangestring = shra[1]
var source = SpreadsheetApp.openById( key )
if ( sheetstring.length==0 ) sheet = source.getSheets()[0] ;
else sheet = source.getSheetByName( sheetstring ) ;
return sheet.getRange( rangestring ).getValues();
}
关于google-apps-script - 使用 myImportRange 自定义电子表格函数 - TypeError : Cannot call method "split" of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13067811/
我是一名优秀的程序员,十分优秀!