javascript - 错误:TypeError:在对象函数mergeAcross中找不到函数getValue
问题描述
我试图获取一系列单元格中每个单元格的值并得到这个错误:
'错误:TypeError:在对象函数mergeAcross中找不到函数getValue'。
我已阅读文档mergeAcross()
但不明白它与我的问题有什么关系。我mergeAcross()
在dataRange
变量上使用了相反的函数,该breakApart()
函数并没有正常工作。我还尝试使用dataRange
值创建一个变量并在 for 循环中使用它,但是我无法获得值所在的行。
var Ssheet = SpreadsheetApp.getActive();
var sheet = Ssheet.getSheets()[0];
var dataRange = sheet.getRange('B2:B100');
for (var ncell in dataRange){
if (!dataRange[ncell].getValue()){
break
}
var othercellVa = sheet.getRange(dataRange[ncell].getRow(),13).getValue();
// I need to get the row of the value I'm reading
Logger.log(dataRange[ncell].getValue());
}
我应该记录单元格值,但我得到了上述错误。提前致谢。
解决方案
试试这个:
function myFunction() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheets()[0];//gets the left sheet
var rg=sh.getRange('B2:B100');
var vA=rg.getValues();
for(var i=0;i<vA.length;i++) {
if(!vA[i][0]) {
break;//if null
}
}
Logger.log(vA);
}
我只是想指出,在您的代码中,dataRange 没有值,范围只是一个单元格或相邻单元格的集合。该对象没有值。您可以使用 Object.values(dataRange) 对其进行测试,您会发现它只有方法。所以使用这种形式 dataRange[ncell] 是没有意义的,因为它不包含任何值,并且它的所有键都是方法。因此,如果您首先要查找此范围内每个值的行和列,则必须使用 dataRange.getValues() 获取值,现在您有一个二维数组。以下示例将显示该列中每个单元格的行值和列值。
function myFunction() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Sheet177');
var rg=sh.getRange('B2:B100');
var vA=rg.getValues();
for(var i=0;i<vA.length;i++) {
if(!vA[i][0]) {
Logger.log('no value row: %s col: %s',rg.getRow() + i, rg.getColumn());
continue;//if null
}else{
Logger.log('value: %s row: %s col: %s',vA[i][0],rg.getRow() + i, rg.getColumn());
}
}
}
推荐阅读
- flutter - 动态生成并返回一个xml文件
- javascript - javascript - 条件 javascript 对象 ES6
- javascript - 关于延迟函数源码的问题
- webdriver-io - 如何在 webdriverIO 中添加 mochawesome 报告生成器?
- javascript - 如何将此 javascript 代码翻译成 JSX React
- jquery - 如何在更改功能中添加带有类的标签
- eclipse - 如何在 Eclipse 上使用 Git 和 Github 以及 Git 操作的新 Token 身份验证要求
- mysql - 如何获取包含评论和作者数据的表中的所有帖子
- python - 修改解密的 JSON 代码并编写加密消息 Python
- python - 在 Tensorboard 中绘制两个变量?