You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行函数返回function () { [native code],Simpan函数无法获取表格输入求助

问题修复方案

核心问题分析

  1. 语法错误导致返回原生函数引用
    你的代码中jumlahitem和tgl的获取语句漏掉了getValue()的调用括号:
var jumlahitem = shtinput.getRange('D7').getValue; // 错误:未调用方法
var tgl = shtinput.getRange('D9').getValue; // 错误:未调用方法

这里的getValue是一个方法,不加括号的话,你拿到的是方法本身的引用而非单元格的值,这就是执行后返回function () { [native code] }的原因。

  1. 自定义函数权限限制导致无法写入数据
    在Google Sheets单元格中直接输入=Simpan()调用自定义函数时,这类函数处于沙箱模式,没有权限修改其他工作表(如Database)的内容,只能返回值到当前单元格,这是数据无法写入的关键原因。

修复后的代码

function Simpan() {
  var Sheet = SpreadsheetApp.getActiveSpreadsheet();
  var shtinput = Sheet.getSheetByName('Input Form');
  var shtdb = Sheet.getSheetByName('Database');

  // 修正:补全getValue()的调用括号
  var nomorinput = shtinput.getRange('D3').getValue();
  var namaitem = shtinput.getRange('D5').getValue();
  var jumlahitem = shtinput.getRange('D7').getValue();
  var tgl = shtinput.getRange('D9').getValue();
  
  var baris = shtdb.getRange('E1').getValue();
  baris += 1;
  var rangeisi = shtdb.getRange('A' + baris + ':D'+ baris);
  rangeisi.setValues([[nomorinput,namaitem,jumlahitem,tgl]]);
  
  // 可选:更新E1的计数,确保下次写入正确的行号
  shtdb.getRange('E1').setValue(baris);
}

正确运行方式

不能直接在单元格中调用=Simpan(),请选择以下任意一种方式运行:

  • 添加按钮触发:在工作表中插入形状/绘图,右键点击形状选择「分配脚本」,输入Simpan,点击按钮即可执行。
  • 手动在脚本编辑器运行:打开脚本编辑器,点击运行按钮执行Simpan函数(首次运行需授权)。
  • 设置触发器:在脚本编辑器中点击「编辑」→「当前项目的触发器」,添加一个手动触发或事件触发的规则,实现自动执行。

内容的提问来源于stack exchange,提问作者Vovlo Vandver

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 14:10:41