Google 表格复选框脚本

问题描述 投票:0回答:1

我有多个函数,每当选中复选框时,列就会随机化。第一个函数(D1A)对第一个复选框有效,但是当我为第二个复选框输入第二个函数(D2A)时,两个函数都停止工作。我做错了什么?

这里有2个功能:

 `'function D1A() {
 const ss = SpreadsheetApp.getActive();
 const sheet = ss.getSheetByName('Copy of 1-12-2025 - 1-18-2025');
 const originalValues = sheet.getRange('J5:K6').getValues();
 var transposedValues = originalValues[0].map((col, i) => originalValues.map(row => row[i]));
 var randomizedValues = transposedValues.map(x=>x.sort((a, b) => 0.5 - Math.random()));
 var output = randomizedValues[0].map((col, i) => randomizedValues.map(row => row[i]));
 sheet.getRange('J8:K9').setValues(output);
 }

'function onEdit(e) {
if (e.value == 'D1A') D1A()
}`    

`'function D2A() {
const ss = SpreadsheetApp.getActive();
const sheet = ss.getSheetByName('Copy of 1-12-2025 - 1-18-2025');
const originalValues = sheet.getRange('M5:N7').getValues();
var transposedValues = originalValues[0].map((col, i) => originalValues.map(row => row[i]));
var randomizedValues = transposedValues.map(x=>x.sort((a, b) => 0.5 - Math.random()));
var output = randomizedValues[0].map((col, i) => randomizedValues.map(row => row[i]));
sheet.getRange('M9:N11').setValues(output);
}

'function onEdit(e) {
if (e.value == 'D2A') D2A()
}`    
google-sheets google-apps-script
1个回答
0
投票

2 Google 脚本上的 OnEdit() 函数

问题的根本原因是,在 Google Apps 脚本中,1 个脚本中不能有 2 个同名的函数。解决这个问题,您可以在这个项目和您未来的项目中尝试这种方法。

编辑代码

function onEdit(e) {
if (e.value == 'D1A'){
  D1A();
}
else if(e.value == 'D2A'){
  D2A();
}
}  


function  D1A()
{
 const ss = SpreadsheetApp.getActive();
 const sheet = ss.getSheetByName('Copy of 1-12-2025 - 1-18-2025');
 const originalValues = sheet.getRange('J5:K6').getValues();
 var transposedValues = originalValues[0].map((col, i) => originalValues.map(row => row[i]));
 var randomizedValues = transposedValues.map(x=>x.sort((a, b) => 0.5 - Math.random()));
 var output = randomizedValues[0].map((col, i) => randomizedValues.map(row => row[i]));
 sheet.getRange('J8:K9').setValues(output);
 }

function D2A() {
const ss = SpreadsheetApp.getActive();
const sheet = ss.getSheetByName('Copy of 1-12-2025 - 1-18-2025');
const originalValues = sheet.getRange('M5:N7').getValues();
var transposedValues = originalValues[0].map((col, i) => originalValues.map(row => row[i]));
var randomizedValues = transposedValues.map(x=>x.sort((a, b) => 0.5 - Math.random()));
var output = randomizedValues[0].map((col, i) => randomizedValues.map(row => row[i]));
sheet.getRange('M9:N11').setValues(output);
}
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.