2013-06-17 7 views
0

그래서 merge() 함수에 약간의 문제가 있습니다.
스프레드 시트/시트를 생성하고 정렬하는 함수를 스크립트로 작성하면 모든 작업을 처리 할 수 ​​있습니다.
그러나 시트에 대해 일부 셀을 병합하려면 "실제로 선택한 영어 단어가 아니라 동등한 셀"을 병합 할 수 없다는 오류 메시지가 나타납니다.스프레드 시트 : merge() 문제

function style(id,magasin,Nom,dateTest){ 
var ssMois = SpreadsheetApp.openById(id); 
var sheet = ssMois.getSheetByName(Nom); 

var date=dateTest.toLocaleDateString(); 

sheet.getRange("A1:D1").merge(); 
sheet.getRange("B1").setValue("Feuille de caisse du:"); 

sheet.getRange("C1:E1").mergeAcross(); 
sheet.getRange("B1").setValue(date); 

sheet.getRange("B2:F2").merge(); 
sheet.getRange("B2").setValue(magasin); 

//BLOC RECETTE DU JOUR ****** 

sheet.getRange("B4:F4").merge(); 
sheet.getRange("B4").setValue("RECETTE DU JOUR"); 

sheet.getRange("C5").setValue("Caisse 1"); 
sheet.getRange("D5").setValue("Caisse 2"); 
sheet.getRange("E5").setValue("Total"); 
    sheet.getRange("E7:E10").setFormulas("=R[0]C[-2]+R[0]C[-1]") 

sheet.getRange("B6").setValue("CAISSIER"); 
sheet.getRange("B7").setValue("ESPECE DU JOUR"); 
sheet.getRange("B8").setValue("CARTE BLEU"); 
sheet.getRange("B9").setValue("CHEQUE"); 
sheet.getRange("B10").setValue("TOTAL (€)"); 


//BLOC FOND DE CAISSE ****** 
sheet.getRange("B12:F12").merge(); 
sheet.getRange("B12").setValue("DETERMINATION DU FOND DE CAISSE"); 

sheet.getRange("B13").setValue("Fond de caisse J-1"); 
sheet.getRange("B14").setValue("SOUS-TOTAL"); 
sheet.getRange("B15").setValue("PRELEVEMENT"); 
sheet.getRange("B16").setValue("SORTIE DE CAISSE"); 
sheet.getRange("B17").setValue("Fond de caisse théorique:"); 
sheet.getRange("B18").setValue("Fond de caisse compté:"); 
sheet.getRange("B19").setValue("Erreur"); 

//BLOC SORTIE DE CAISSE ****** 

} 

이상한 사실은 여기에 온다 :

코드를 참조하십시오 내가 코멘트의 첫 번째 병합 sheet.getRange("A1:D1").merge();를 넣어 경우

를 코드는 괜찮습니다.
범위 "A1 : D1"을 다른 것으로 변경하면 언젠가 코드가 작동합니다.
처음 세 줄을 제외하고 전체 코드를 주석에 넣으면 작동합니다.
물론 병합 단추를 사용하여이 병합을 수동으로 병합 할 수 있습니다.

이 오류를 이해하지 못 했으므로 해결 방법이나 해결 방법을 찾는데 도움이 될 수 있습니까?

+0

이 범위를 수동으로 병합 할 수 있습니까? 병합을 방해하는 필터 또는 다른 기능이있을 수 있습니다. 수동으로 시도하면 더 나은 오류 메시지가 나타날 수 있습니다. –

+0

예, 수동으로 병합 할 수 있습니다.
내 오류 (내 바보 같은 오류) 여기에 : 'sheet.getRange ("A1 : D1"). merge(); sheet.getRange ("B1"). setValue ("Feuille de caisse du :"); sheet.getRange ("C1 : E1"). mergeAcross(); sheet.getRange ("B1"). setValue (date); ' A1 : D1을 병합 한 다음 C1 : E1을 병합하지만 C1과 D1은 이미 병합되었습니다! 문제가 해결되었습니다. 어쩌면 오류 메시지가 더 userfriendly 수 있지만 완전히 내 잘못은 어쨌든 – MarFlo

+0

[당신의 질문에 대답] (http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer - 너 자신 - 질문 /). –

답변

0

내 코드에서 오류가 발생했습니다. 먼저 A1 : D1을 병합 한 다음 C1 : E1을 병합합니다.

따라서 C1 셀은 이미 A1 셀과 병합되어 있기 때문에 스크립트는 C1 : E1을 병합 할 수 없습니다.

내가 할 수있는 유일한 불만은 오류 메시지가 더 구체적 일 수 있다는 것입니다. 셀 또는 라인이 표시되지 않습니다. 그냥 일반적인 메시지 "셀을 병합 할 수 없습니다"