如何在谷歌表格中创建仅清除用户输入数据的恢复按钮
只清除用户输入数据,保留Google Sheets默认值的解决方案
你的问题很常见——直接用clearContent()会把所有内容包括预设的默认数据一起清空,想要只重置到初始状态,核心思路是先保存好初始的默认值,恢复时把这些值写回去,而不是单纯清空。下面给你两种实用的实现方法:
方法一:用脚本属性存储默认值(推荐)
这种方法不需要额外工作表,把默认值存在脚本的内置存储里,灵活又不占空间:
步骤1:先保存初始默认值
先创建一个函数,把你要保留的默认数据存起来。只需要运行一次这个函数,之后就不用管了:
function saveDefaultValues() { const sheet = SpreadsheetApp.getActive().getSheetByName('Sheet1'); const defaultRange = sheet.getRange('B13:B30'); // 获取初始默认值的二维数组 const defaultValues = defaultRange.getValues(); // 把值存在脚本属性里,用一个唯一的键标识 PropertiesService.getScriptProperties().setProperty('DEFAULT_B13_B30', JSON.stringify(defaultValues)); }
运行这个函数的方式:打开脚本编辑器,选中这个函数,点击运行按钮,第一次运行需要授权权限。
步骤2:修改你的重置函数
把原来的clearRange()改成从存储里读取默认值,再写回单元格:
function clearRange() { const sheet = SpreadsheetApp.getActive().getSheetByName('Sheet1'); const targetRange = sheet.getRange('B13:B30'); // 从脚本属性里取出之前保存的默认值,转成数组 const savedDefaults = JSON.parse(PropertiesService.getScriptProperties().getProperty('DEFAULT_B13_B30')); // 把默认值写回目标单元格 targetRange.setValues(savedDefaults); }
这样运行clearRange()时,就会把用户输入的内容替换回初始的默认数据,完美保留你预设的内容。
方法二:用隐藏工作表备份默认值
如果你更直观地想看到备份的数据,可以用一个隐藏工作表来存初始值:
步骤1:创建隐藏备份表
- 在你的Spreadsheet里新建一个工作表,比如命名为
BackupDefaults - 把
Sheet1里B13:B30的默认数据复制粘贴到BackupDefaults的对应位置(比如也是B13:B30) - 右键点击
BackupDefaults工作表标签,选择"隐藏工作表"
步骤2:修改重置函数
function clearRange() { const mainSheet = SpreadsheetApp.getActive().getSheetByName('Sheet1'); const backupSheet = SpreadsheetApp.getActive().getSheetByName('BackupDefaults'); // 从备份表读取默认值,写回主表 const defaultValues = backupSheet.getRange('B13:B30').getValues(); mainSheet.getRange('B13:B30').setValues(defaultValues); }
这种方法的好处是如果之后默认数据需要修改,直接修改隐藏的备份表就行,不用改脚本。
最后一步:绑定按钮
不管用哪种方法,都可以在工作表里插入一个按钮,把clearRange()函数绑定上去,用户点击就能一键重置啦。
内容的提问来源于stack exchange,提问作者user6923356
相关产品推荐
相关产品推荐

