瞬态错误,使用 if 子句跳过空白单元格
Transient errors, Skipping blank cells with if clause
该程序应该遍历一系列包含电子邮件地址的电子表格单元格,然后将它们分配给联系人组。它非常慢并且一直给我一个"transient error. Try again later"。许多牢房是空的,我想这就是原因。你能帮我加快速度吗,这样我就不会再出现瞬态错误了(在 20-30 个单元之后)。我试图实现这个 if 子句,但它要么创建一个空白联系人(浪费我的配额),要么抛出一个空错误。
If 子句跳过空单元格:
if(cell != "" && cell != null){
我的脚本:
function addContactstoGroup() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('NewEmails');
var lastRow = sheet.getLastRow();
var lastColumn = sheet.getLastColumn();
var dataRange = sheet.getRange(2, 9, lastRow , lastColumn); //rows and columns start at 1, arrays start at 0.
var data = dataRange.getValues();
for (var i=1; i < lastRow; ++i){ //rows
var groupHeaderRange = sheet.getRange(i+1,9);
var groupHeader = groupHeaderRange.getValue();
for(var j=1; j < lastColumn; ++j){ //columns
var cell = data[i][j].getRange;
if(cell != "" && cell != null){
var groups = data[i][9];
var cell = sheet.getRange(i+2,j+9);
var contactGroup = data[i][0];
var emailAddress = data[i][j];
var contact = ContactsApp.createContact(null,null, emailAddress); // insert null
var group = ContactsApp.getContactGroup(contactGroup);
group.addContact(contact);//or should this just be emailAddress
cell.clear();
};
groupHeaderRange.clear();
};
//}else{break;};
};
};
如果你能帮我解决问题,你就是我的英雄:
1) 瞬态错误
2) If 子句因此它跳过空单元格而不是 运行 "ContactsApp.createContact"
var contact = ContactsApp.createContact(null,null, emailAddress); // insert null
谢谢!!!我只编写了几个月的代码,我不明白为什么这个问题不断出现。
谢谢!
尝试将 var cell
更改为 var cell = data[i][j];
然后您的 if 语句应该可以工作。
您的暂时性错误可能是由无效的电子邮件地址引起的。即不存在的电子邮件地址或您看不到的电子邮件地址中的一些白色space。
您可以通过选择包含电子邮件地址的范围找到并删除白色space 去查找替换。在查找字段中,输入 1 space 并单击全部替换。
如果您可以提供一个带有虚拟电子邮件地址的虚拟电子表格,那么查看我们是否可以使您的代码更高效会容易得多。
该程序应该遍历一系列包含电子邮件地址的电子表格单元格,然后将它们分配给联系人组。它非常慢并且一直给我一个"transient error. Try again later"。许多牢房是空的,我想这就是原因。你能帮我加快速度吗,这样我就不会再出现瞬态错误了(在 20-30 个单元之后)。我试图实现这个 if 子句,但它要么创建一个空白联系人(浪费我的配额),要么抛出一个空错误。
If 子句跳过空单元格:
if(cell != "" && cell != null){
我的脚本:
function addContactstoGroup() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('NewEmails');
var lastRow = sheet.getLastRow();
var lastColumn = sheet.getLastColumn();
var dataRange = sheet.getRange(2, 9, lastRow , lastColumn); //rows and columns start at 1, arrays start at 0.
var data = dataRange.getValues();
for (var i=1; i < lastRow; ++i){ //rows
var groupHeaderRange = sheet.getRange(i+1,9);
var groupHeader = groupHeaderRange.getValue();
for(var j=1; j < lastColumn; ++j){ //columns
var cell = data[i][j].getRange;
if(cell != "" && cell != null){
var groups = data[i][9];
var cell = sheet.getRange(i+2,j+9);
var contactGroup = data[i][0];
var emailAddress = data[i][j];
var contact = ContactsApp.createContact(null,null, emailAddress); // insert null
var group = ContactsApp.getContactGroup(contactGroup);
group.addContact(contact);//or should this just be emailAddress
cell.clear();
};
groupHeaderRange.clear();
};
//}else{break;};
};
};
如果你能帮我解决问题,你就是我的英雄:
1) 瞬态错误
2) If 子句因此它跳过空单元格而不是 运行 "ContactsApp.createContact"
var contact = ContactsApp.createContact(null,null, emailAddress); // insert null
谢谢!!!我只编写了几个月的代码,我不明白为什么这个问题不断出现。
谢谢!
尝试将
var cell
更改为var cell = data[i][j];
然后您的 if 语句应该可以工作。您的暂时性错误可能是由无效的电子邮件地址引起的。即不存在的电子邮件地址或您看不到的电子邮件地址中的一些白色space。
您可以通过选择包含电子邮件地址的范围找到并删除白色space 去查找替换。在查找字段中,输入 1 space 并单击全部替换。
如果您可以提供一个带有虚拟电子邮件地址的虚拟电子表格,那么查看我们是否可以使您的代码更高效会容易得多。