【问题标题】:How Stop Formula from Using Updated Data? (Google Sheets)如何阻止公式使用更新的数据? (谷歌表格)
【发布时间】:2021-05-18 19:07:11
【问题描述】:

我有一个查找姓名并返回该人的平均值的 vlookup 公式。我在一周内记录这些平均值,并在不同的列中将它们标识为 W1、W2、W3 等。问题是,我导入的数据只有一个平均值,这意味着如果我导入它,它将覆盖我几天前使用相同的报告已经输入的内容,只是一个旧版本。

我的问题是,当 W1 调用的数据发生变化时,我有没有办法阻止 W1 的公式更新?本质上,冻结值?这样我就不必为了保存历史而不断添加新标签来导入新数据。数据很可靠,而且我收集的信息不仅仅是平均值,所以我需要整个数据。

我不介意编写一些有助于解决我的问题的脚本,我只需要一些指导。

编辑:关于编写一个菜单按钮脚本的想法,该按钮将仅在我更新数据之前触发的选定范围内复制、粘贴值?

我希望能够在我的工作表中选择一个范围,选择菜单“保存信息”,让它复制我选择的内容,然后将其粘贴回原来的位置。这将删除在新数据导入时会导致我的值发生变化的公式,并保持我的历史记录不变。

以下是我到目前为止想出的,但我收到了这个错误:

"TypeError: sourceSheet.getDataRange is not a function".

function saveInfo(){
  var spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheet = spreadSheet.getActiveSheet
  
  var sourceRange = sourceSheet.getDataRange();
  
  var targetSheet = spreadSheet.getActiveSheet();
  
  sourceRange.copyTo(targetSheet.getActiveRange());
} 


function updateMenu() {
  SpreadsheetApp.getActiveSpreadsheet().updateMenu('Save Info', generateMenu())
};
function onOpen() {
  SpreadsheetApp.getActiveSpreadsheet().addMenu('Save Info', generateMenu());
};
function generateMenu() {
  var entries = [{
    name: "Save Data Before Update",
    functionName: "saveInfo"
  }];
  
  return entries;
}

有什么想法吗??

谢谢!

【问题讨论】:

  • 如果没有其他信息,很难编写脚本。
  • 您可能已经想到了这一点……但是您可以使用两个现有的按钮。右键单击,复制范围。右键单击范围上的paste special --> values。这会将公式转换为值
  • 或 Control+Copy,Control+Shift+V 作为热键。
  • @MetaMan 我刚刚添加了一些需要帮助的脚本。菜单工作,但功能不工作。你能看一下吗?
  • 将 () 添加到 sourceSheet 变量中的 getActiveSheet() 中。它应该是 var sourceSheet = spreadsheet.getActiveSheet()。

标签: javascript google-apps-script google-sheets freeze


【解决方案1】:

给你:

function saveInfo() {
    var range = SpreadsheetApp.getActiveSheet().getActiveRange();
    var values = range.getDisplayValues();
    range.setValues(values);
}

function onOpen() {
  SpreadsheetApp.getUi()
  .createMenu('Save Info')
  .addItem('Save Data Before Update', 'saveInfo')
  .addToUi();
}

脚本将选定单元格内的数据转换为纯文本。

但实际上你不需要任何脚本。您可以只选择单元格,按Ctrl+CCtrl+Shift+V

【讨论】:

    猜你喜欢
    • 2020-07-02
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多