-1

我的脚本知识仅限于一些旧语言,如 VBA-Excel。在尝试将 VBA-Excel 脚本翻译为 Google Apps 脚本时,为什么下面会出现“左侧分配无效”错误?似乎我不能继续有条件地替换与脚本相同的变量,该脚本运行大约 1500 行,并根据各种检查条件多次替换许多变量。最后,最后的条件状态作为输出返回。如果我不能在脚本进行时有条件地更改变量,它真的会破坏我的整个转换希望:

var Elevation = activeSheet.getRange(7,2).getValue();
var Desert = activeSheet.getRange(8,2).getValue();
var Highlands_mod = 0;

if (Elevation == "High Mountains") {Highlands_mod = -20;}
if (Elevation == "Highlands" && Desert = "No") {Highlands_mod = -10;}
if (Elevation == "Highlands" && Desert = "Yes") {Highlands_mod = 10;}
if (Elevation == "High Mountains") {Elevation = "Highlands";}

我已经尝试了各种不同的格式。一旦我有第二组尝试修改/替换相同变量的条件,例如在前 3 个“if”语句中的任何一个之间,就会发生错误。我还想知道第一个和第四个“if”语句是否可能会超出预期的顺序并导致错误。

我正在尝试进行潜在的简单转换(我希望如此),而无需花费数周时间学习一门新语言,因此我很感激任何见解。

4

2 回答 2

1

你有一个等于你正在检查沙漠的地方。

解释:

let x = 10;// 用值 10 初始化 x

if (x == 10) {}// 这会检查 x 的值是否为 10

if (x === 10) {}// 这会检查值和类型x是否x是一个数字,它的值是否等于 10

它应该是双等于而不是一个:

var Elevation = activeSheet.getRange(7,2).getValue();
var Desert = activeSheet.getRange(8,2).getValue();
var Highlands_mod = 0;


if (Elevation == "High Mountains") {
  Highlands_mod = -20;
}
if (Elevation == "Highlands" && Desert == "No") {
  Highlands_mod = -10;
}
if (Elevation == "Highlands" && Desert == "Yes") {
  Highlands_mod = 10;
}
if (Elevation == "High Mountains") {
  Elevation = "Highlands";
}
于 2018-12-07T10:51:25.617 回答
1

您正在使用=而不是==or ===

if (Elevation == "Highlands" && Desert = "No") {Highlands_mod = -10;}

记住:=分配一个值,=====比较两个值。

将您的代码更改为:

 if (Elevation == "Highlands" && Desert == "No") {Highlands_mod = -10;}
于 2018-12-07T10:52:15.953 回答