更新2:这是一个权限问题。我想我必须为每个电子表格复制所有脚本吗?我现在已经修复了代码了。
更新:我的代码错误(我认为我认为第二个循环(,但我的问题是为什么脚本在我的床单上不运行。
我正在尝试将数据写入电子表格中的列。也许我只是遇到许可问题?
这是我第一次使用Google脚本,我也不熟悉JavaScript。我有一个带有大量数据的电子表格,我成功地删除了通过比较前两列来定义的重复项 - 没有错误,没有问题,成功地尝试了。现在,我正在尝试填写两个新的空列的数据。
如果第2列的格式为" foo -bar",我希望第3列为" foo"和col 4" bar"。所以我写了这个脚本:
function parseTypes() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var newData = new Array();
for (i in data) {
var row = data[i];
var str = row[2];
var strSplit = str.split(" - ");
row[3] = strSplit[0];
if (strSplit[1] == "" || strSplit[1] == null || row[4] == undefined) {
row[4] = "";
} else {
row[4] = strSplit[1];
}
newData.push(row);
}
sheet.clearContents();
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
}
i进行了调试,字符串阵列strsplit精确设置为" foo,bar"。我的问题是,它实际上并没有将数据写入我的电子表格。我不知道这是我的代码,还是我只是在错误地运行脚本,因为我几乎不知道自己在做什么。
JavaScript使用0基于0的索引,但电子表格使用1个基于1个索引。这意味着行[2]返回C列的值,而不是列b。
您不必复制脚本。您唯一需要更改的是不使用电子表格。这样,您就不必复制它。希望这会有所帮助。