首页 > 解决方案 > Google App Script 从命名范围获取(MID)字符串

问题描述

我是 GAS 的新手,这是我在 Stackoverflow 上的第一个问题。希望我能以正确的方式为您解释我的问题。

我在 1 个名为“INPUT”和“DATA”的电子表格中有 2 张工作表。在 INPUT 表上有一个名为“ScanNr”的命名范围(值始终为 18 位)

需要将此命名范围的值复制到新行中的工作表 DATA (col A)。

目前,我在工作表 DATA (col B) 中使用 MID 公式来获取扫描仪的一部分。

你能帮我调整一下脚本,这样我就不必使用公式了吗?当前公式的一个示例是“=MID(A5, 8, 4)”

到目前为止,这是我的代码:

    function SaveScan() {
    var ss       = SpreadsheetApp.getActiveSpreadsheet();
    var myForm   = ss.getSheetByName("INPUT");
    var myData   = ss.getSheetByName("DATA");
    
    var myScan   = myForm.getRange("ScanNr").getValue();
      
      myData.getRange(myData.getLastRow()+1, 1).setValue(myScan);
  //  myData.getRange(myData.getLastRow(), 2)  // ?? I don't know how to do this.

    }

任何帮助将不胜感激。

标签: google-apps-scriptgoogle-sheets

解决方案


在您的情况下,如何进行以下修改?我认为=MID(A5, 8, 4)可以将其转换为value.substr(7, 4)使用 Javascript。而且,在你的情况下,我认为这appendRow可能是合适的。

从:

myData.getRange(myData.getLastRow()+1, 1).setValue(myScan);

至:

myData.appendRow([myScan, myScan.substr(7, 4)]);

参考:


推荐阅读