我知道有很多像我这样的主题,但我对编程脚本完全不熟悉,因此我请你帮我解决以下问题:
在单元格B2中是用户名,在单元格C2中是提交者类型 - 如果提交者类型是“请求者”,那么单元格B2的用户名应该被复制到单元格AE2 - 问题是,我还想保留如果提交者类型更改并更新,则以前的用户名...
这意味着,首先提交者类型是“请求者”,然后系统应该将用户名复制到单元格AE2 - 如果我的行的提交者类型发生更改,那么已经复制的用户名不应该更改 - 了解我想要的内容?这适用于电子表格的所有行...
我尝试了代码,但遇到了以下错误:
也许你可以为我改进代码?
我改变了那些2:
在:
for (var i = 1; i <= numRows; i++) {
var userNameCell = rows.getCell(i, userNameColumn);
var subTypeCell = rows.getCell(i, subTypeColumn);
var sUserNameCell = rows.getCell(i, sUserNameColumn);
后:
for (var i = 1; i <= numRows; i++) {
var userNameCell = rows.getCell(i, userNameColumn);
var sUserNameCell = rows.getCell(i, sUserNameColumn);
var subTypeCell = rows.getCell(i, subTypeColumn);
现在的错误是:
或者改变错了?也许你的意思是:
var userNameColumn = 2; //Column where the user name is written
var subTypeColumn = 5; //Column where the submitter type is written ex. "Requester"
var sUserNameColumn = 3; //Column where the user name is saved
但是之后只知道一个对象(用户名)而不是2 - subTypeCell和sUserNameCell再次未定义 - 说调试器 - 代码现在看起来像那样(再次使用我的更改,因为那时2个对象只有1个已知):
答案 0 :(得分:0)
您可以这样做:
var userNameColumn = 2; //Column where the user name is written
var subTypeColumn = 3; //Column where the submitter type is written ex. "Requester"
var sUserNameColumn = 5; //Column where the user name is saved
function saveUserName() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
for (var i = 1; i <= numRows; i++) {
var userNameCell = rows.getCell(i, userNameColumn);
var subTypeCell = rows.getCell(i, subTypeColumn);
var sUserNameCell = rows.getCell(i, sUserNameColumn);
if(sUserNameCell.isBlank() && subTypeCell.getValue() === 'Requester') {
sUserNameCell.setValue(userNameCell)
};
}
}
首先,它定义了您正在使用的列,即&#34;用户名&#34;(在脚本userNameColumn
中),列为&#34;提交者类型&#34;(在脚本subTypeColumn
中)和保存用户名的列(在脚本sUserNameColumn
中)。每个都被分配了一个对应于电子表格中的列的数字,其中2是B,3是C,依此类推。您可以根据自己的需要进行更改。
然后我们在这个函数中创建一个名为saveUserName()
的函数,我们得到当前的电子表格,我们定义我们将使用的电子表格中的范围,这里是一切,然后我们得到有数据的行数在他们中。
之后我们浏览我们定义的数据,并设置一些我们可以用于每个单元格的变量。然后我们创建if语句,如果&#34; Saved-User-Name-Cell&#34;是空的&#34;提交者 - 类型 - 单元格&#34; =&#39;请求者&#39;然后我们抓住&#34; Saved-User-Name-Cell&#34;并将其值设置为&#34; User-Name-Cell&#34;中的值。
那就是它!