首页 > 解决方案 > 复制/粘贴公式值显示为“正在加载...”

问题描述

我有一个有效的 Google Script 宏,它复制数据透视表/公式并将其作为值粘贴到另一个范围中。

这运行没有任何问题,但有时粘贴的值显示为“正在加载...”。我的猜测是复制/粘贴之间存在一些滞后或延迟,但我如何确保复制/粘贴将确保在粘贴之前加载值?

我尝试添加一个定时延迟函数 ( Utilities.sleep(1000)) 和一个SpreadsheetApp.flush()结果不一致的函数。这些在粘贴功能之后立即放置在行中。请参见下面的代码:

var sourceRange = sheet.getRange("A:C"); //copy table from  
var destRange = sheet.getRange("D:F"); //copy table to
sourceRange.copyTo(destRange, SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);
sourceRange.copyTo(destRange,{contentsOnly:true});
SpreadsheetApp.flush();

想知道是否有其他人遇到过这个问题,我如何确保没有将值粘贴为“正在加载...”?

标签: javascriptgoogle-apps-scriptgoogle-sheetsgoogle-sheets-formula

解决方案


这有效:

function runOne() {
  var ss=SpreadsheetApp.getActive();
  var sheet=ss.getActiveSheet();
  var sourceRange = sheet.getRange('A1').getDataRegion(); 
  var destRange = sheet.getRange('D1'); 
  sourceRange.copyTo(destRange,{contentsOnly:true});
}

推荐阅读