将makeCopy与DriveApp一起使用

时间:2015-10-27 16:27:07

标签: google-apps-script

我的代码用得很好但是因为几周我遇到了麻烦。

首先我定义了mooveFile函数:

1

然后我在我的脚本中调用该函数:

function mooveFile(file,folder,source,copyNameFile){
var newfile = file.makeCopy(copyNameFile, folder);
 source.removeFile(file);
 Logger.log(source.getFiles().length); 
return newfile.getUrl();
}

我得到的错误是:

TypeError:无法从undefined调用“makeCopy”方法。

在我看来,问题来自:

if (statutFile=="Validé") {
     var fichiersj=folderSource.getFilesByName(libeleFile);  
     while (fichiers.hasNext()) {
       var fichiersj = fichiers.next();}
         var urlFichierVal = mooveFilde(fichiersj,folderValid,folderSource,nomFichier);
          sheetform.getRange(i+1,23).setValue("Deplacé");
          if (typeFichier == "DEVIS") {
             sheetform.getRange(i+1,34).setValue(urlFichierVal);}
              if (etatLien !="Lien modifiée") {
                var urlFichierValide = urlFichierVal;
                var hyp = '"'+urlFichierValide+'"';
                var argHyp = ";";
                var sepHyp = '"';
                var hrefHyp = "=HYPERLINK("+hyp+argHyp+sepHyp+"Accèder au "+typeFichier+" Validé"+'")';
                sheetform.getRange(i+1,18).setValue("Lien modifiée");
                sheetform.getRange(i+1,6).setValue(hrefHyp);
              }
         }

但是我不知道它是如何变得不确定的。它用得很好!

1 个答案:

答案 0 :(得分:1)

您的代码中看起来还有一个额外的内容:

var fichiersj = fichiers.next();}

这是在该行之后结束While循环,而不是执行其余的代码。

while循环结束后,“fichiersj”未定义,因为它只在循环中定义。