【发布时间】:2018-08-07 00:34:13
【问题描述】:
我正在为在 Google 表格中工作而编写一个定价计算器,我已经在 JS 中编写了一些函数。它们工作正常。
我遇到的问题是,我需要更少的代码来更改某些变量。
我有一个想法,即在单独的电子表格上使用带有所有“设置”的命名范围。获取这些单元格和值,并使用函数将它们转换为 JS 中的变量。
我已经设法将命名范围以及值导入 JS。 (getValues() 和getNamedRanges())但我无法从它们生成变量。我认为这被称为动态生成的变量?我试过使用 eval() (我读过这显然不是一个好主意)但我也无法让它工作。
我是否需要定义我正在使用的所有变量,而不是根据命名范围及其值来生成它们?
我对 JS 比较陌生,所以我不确定我是否遗漏了一些明显的东西!
function convertNamedRangeToVariables() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = SpreadsheetApp.getActiveSheet();
var sa = SpreadsheetApp.getActive();
function getValuesOfNamedRange(x) {
return ss.getRangeByName(x).getValues();
}
var namedRanges = sa.getNamedRanges();
for (var i = 0; i < namedRanges.length; i++) {
var name = namedRanges[i].getName();
var value = getValuesOfNamedRange(name);
Logger.log(name);
Logger.log(value);
eval('var' + name + '=' + value);
}
return
}
【问题讨论】:
-
你最好在你的问题中发布你的一些代码来让球滚动......
-
谢谢李,我已经添加了一些代码。
-
看我的回答...