1

我正在尝试使用左侧功能将自动文本(a8a2dc4e-ba77-450d-8352-0044365e7322)从工作表中的特定列截断到文本的前四个(a8a2)......我无法做到它,我收到错误消息,我无法使用工作表本身的功能,因为工作表每天清除所有功能

这是下面的脚本

function Truncate () {
  
// Get Spreadsheet and sheets
  var R = SpreadsheetApp.openById("Sheet Link");
    var Choices = R.getSheetByName("Choices");
  
     UniqueNo = Choices.getRange("H2:H").left(H:4"); //sheet column range and the left function
    }

请问我的脚本有什么问题,我可以使用哪个脚本来实现这一点?

4

1 回答 1

2

问题:


解释:

  • 您的目标是获取 H 列的值,对每个元素应用操作以获取此数组中每个元素的前 4 位,然后将值粘贴/覆盖回 H 列。

  • 为此,您必须使用getValues()来获取 H 列的值。首先,您使用flat来获取一维数组中的值。然后,您需要对该数组的每个元素应用一个函数,以获取每个单元格的前 4 位。使用map()来做到这一点。

  • 获取字符串前 4 位数字的一种方法是使用substring(0,4)


解决方案:

function truncate() {
    const R        = SpreadsheetApp.openById("SheetId");
    const Choices  = R.getSheetByName("Choices");
    const Hrange = Choices.getRange("H2:H");
    const data    = Hrange.getValues().flat().map(r => [r.toString().substring(0,4)] );
    Hrange.setValues(data);
}
于 2020-10-10T20:15:37.313 回答