2016-06-27 10 views
0

지난 몇 주 동안 검색을 해본 결과이 스크립트를 찾아 내지 못했습니다. 제가하고있는 일은 마스터 Google 스프레드 시트의 그림 캘린더를 내가 관리하는 다른 Google 스프레드 시트 파일에 복사하는 방법을 찾는 것입니다. 마스터 캘린더에 대한 업데이트가있을 때마다 내가 관리하는 다른 Google 스프레드 시트 파일에서 자동으로 업데이트하는 것이 좋습니다. 지금은 붙여 넣기를 모두 복사하고 이미지를 다시 포맷하고 다시 가져와야합니다. 나는 다소 효과가있는 스크립트를 찾았지만 많은 문제가되는 몇 가지 문제가 있습니다.Google 스프레드 시트 스크립트, 복사 및 기존 시트 대체

스크립트는 copyTo 스크립트이므로 마스터 Google 스프레드 시트 파일 ('마스터 캘린더')의 '그림 캘린더'라는 제목의 시트를 다른 Google 스프레드 시트 파일 ('내 캘린더')에 복사 할 수 있습니다. 심지어 편집을 할 때마다 스크립트를 실행할 수있는 트리거를 설정했습니다.

그러나 "그림 달력 1 사본" "그림 달력 2 사본"등의 새 시트를 계속 작성하고 새 시트를 만드는 대신 기존 시트를 대체하는 방법을 알아낼 수 없습니다 .

"내 캘린더"파일에서 복제 된 시트를 "그림 캘린더"로 변경할 수도 있습니다. 내가 사용하는 스크립트는 다음과 같습니다.

function copyMasterCalendar() { 
var source = SpreadsheetApp.getActiveSpreadsheet(); 

var sheet = source.getSheets()[2]; 

var destination = SpreadsheetApp.openById("1exiUWVypFpYeHMkXHO3sMUTGupiC2gQjZIF0Ss44-pU"); 

sheet.copyTo(destination); 
} 

모든 도움을 주시면 감사하겠습니다. 고맙습니다!

답변

0

난 당신을 제대로하려고 이해하면 ...

function copyMasterCalendar() { 
    var source = SpreadsheetApp.getActiveSpreadsheet(), 
     sheet = source.getSheetByName('Pictorial Calendar'), 
     destination = SpreadsheetApp.openById("1exiUWVypFpYeHMkXHO3sMUTGupiC2gQjZIF0Ss44-pU"), 
     destSheet = destination.getSheetByName('Pictorial Calendar'), 
     copydSheet = sheet.copyTo(destination); 
    copydSheet.getDataRange().copyTo(destSheet.getDataRange()); 
    destination.deleteSheet(copydSheet); 
} 
+0

은 그 스크립트가 거의 제대로 작동 올바르게 나를 이해 생각한다. 원본 시트에있는 서식이나 이미지는 가져 오지 않습니다 (처음 나열된 copyTo 스크립트). 나는 그것을 이해하려고 몇 시간을 보냈지 만 성공하지 못했습니다. 포맷과 이미지를 가져올 수 있습니까? 스크립트가 중복 시트를 생성하지 않고 기존 시트를 덮어 쓰는 것을 정말 좋아합니다. – Marc

+0

마지막 두 줄을 삭제하는 것을 어떻게 변경합니까?'destination.deleteSheet (destSheet);'&'copydSheet.setName ('Pictorial Calendar');'. 기본적으로 원본 시트를 삭제하고 복사본의 이름을 바꿉니다. – mongoose36

+0

정말 고마워요! 그 마지막 편집은 스크립트가 완벽하게 실행되도록합니다. 이것은 놀랍습니다! 당신은 정말로 시간을 절약하고 많은 두통으로 나를 도왔습니다. 다시 한번 감사드립니다. @ mongoose36! – Marc