在编写我的 VBA 宏时,我经常使用“GoTo”以便在不离开 Sub 的情况下跳转到宏的前一部分。现在我正在将我所有的宏转换为 Google Apps 脚本,我正试图找到“GoTo”的等效项。
Sub MySub()
Dim sheetname1 As String
Dim sheetname2 As String
On Error GoTo Err
sheetname1 = ActiveSheet.Name
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "passwords"
sheetname2 = ActiveSheet.Name
GoTo aftererr
Err:
MsgBox Error(Err)
Exit Sub
aftererr:
这只是我使用 GoTo 的一个例子。但是,我在许多其他方面都需要它用于我的新脚本;不仅仅是为了重定向错误。例如:
function MyFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getActiveSheet();
if(criteraA == criteraB){
sh.offset(1,0).activate();
var i=i + 1;
//?? GoTo ??
}else{
var i=0;
sh.getRange(row, column)(1,sr.offset(0,1).getColumn()).activate();
}
最佳答案
您不需要 GoTo,大多数人会争辩说,即使它存在,使用它也是糟糕的编程习惯。使用其他控制结构就可以完成这项工作。
if() {
} else if() {
} else {
}
for(;;) {
continue;
break;
}
while() {
}
do {
} while();
switch() {
case:
default:
}
// for errors
throw "Error string"
try {
} catch(error) {
}
您必须稍微调整一下您的逻辑,但这样会得到更好、更易于维护的代码。
关于javascript - 相当于 Google Apps 脚本中的 "GoTo"(相当于 VBA-GAS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17153890/