首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将坐标范围转换为A1Notation

将坐标范围转换为A1Notation
EN

Stack Overflow用户
提问于 2018-04-12 05:57:06
回答 2查看 1.5K关注 0票数 0

我想把坐标范围转换为A1Notation。当我将"value“放入电子表格的"A1”时,我从e of onEdit(e)中得到了{"authMode":{},"range":{"columnStart":1,"rowStart":1,"rowEnd":1,"columnEnd":1},"source":{},"user":{"nickname":"$$$","email":"$$$@gmail.com"},"value":"value"}。我使用下面的脚本获得范围的A1Notation。

代码语言:javascript
复制
function onEdit(e){
  Logger.log(typeof e.range) // object
  Logger.log(e.range.getA1Notation()) // A1
}

我可以在e.range.getA1Notation()买到“e.range.getA1Notation()”。但当我用下面的脚本,

代码语言:javascript
复制
function myFunction(){
  var e = {"authMode":{},"range":{"columnStart":1,"rowStart":1,"rowEnd":1,"columnEnd":1},"source":{},"user":{"nickname":"$$$","email":"$$$@gmail.com"},"value":"value"};
  Logger.log(typeof e.range) // object
  Logger.log(e.range.getA1Notation()) // Error
}

Logger.log(e.range.getA1Notation())返回错误。错误消息是TypeError: Cannot find function getA1Notation in object [object Object]。两个Logger.log(typeof e.range)都是"object“。我这里有两个问题。

  1. 为什么e.range.getA1Notation() of myFunction()会出现错误?
  2. 有什么方法可以通过{"columnStart":1,"rowStart":1,"rowEnd":1,"columnEnd":1}将A1Notation转换成getA1Notation()

非常感谢你抽出时间。对于我不成熟的问题我很抱歉。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-15 00:04:08

  1. 为什么e.range.getA1Notation() of myFunction()会出现错误?

因为对象的range属性不是正确的类。

  1. 有什么方法可以通过{"columnStart":1,"rowStart":1,"rowEnd":1,"columnEnd":1}将A1Notation转换成getA1Notation()

有很多种方法。也许简单的方法是使用对象上设置的坐标来获得一个范围,在对象上使用getA1Notation。

示例:

代码语言:javascript
复制
function myFunction(){
  var o = {"columnStart":1,"rowStart":1,"rowEnd":1,"columnEnd":1};
  var sheet = SpreadsheetApp.getActiveSheet();
  //
  var row = o.rowStart;
  var column = o.columnStart;
  var numRows = o.rowEnd - o.rowStart + 1;
  var numColumns = o.columnEnd - o.columnStart + 1;
  var range = sheet.getRange(row, column, numRows, numColumns);
  var A1Notation = range.getA1Notation();
  Logger.log(A1Notation);
}
票数 1
EN

Stack Overflow用户

发布于 2018-04-12 06:09:44

你不是这么定义范围的。看看在文档中获取范围的几种方法。

代码语言:javascript
复制
function myFunction(){
  var e = {
    "authMode": {},
    "range": SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getRange(1,1,1,1),
    "source":{},
    "user": {
      "nickname":"$$$",
      "email":"$$$@gmail.com"
    },
    "value":"value"
  };
  Logger.log(typeof e.range) // object
  Logger.log(e.range.getA1Notation()) // A1
}

function convert(e) {
  var e = {
    "authMode":{},
    "range":{
      "columnStart":1,
      "rowStart":1,
      "rowEnd":1,
      "columnEnd":1
    },
    "source":{},
    "user":{
      "nickname":"$$$",
      "email":"$$$@gmail.com"
    },
    "value":"value"
  };
  var row = e.range.rowStart;
  var column = e.range.columnStart;
  var numRows = e.range.rowEnd - row + 1;
  var numColumns = e.range.columnEnd - column + 1;
  var range = SpreadsheetApp.getActive().getSheetByName("Sheet1").getRange(row, column, numRows, numColumns);
  Logger.log(range.getA1Notation()); // A1
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49788988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档