2016-07-08 5 views
0

다른 Google 시트에서 주어진 범위의 셀 값을 기반으로 Google 시트에서 행을 삭제하는 google 스크립트를 작성할 수 있습니까?다른 Google Sheet 셀 값에 따라 Google 시트의 행 삭제

나는이 모든 것을 동일한 Google 시트에서 수행하는 방법에 대한 연구를 해왔지만, Google 시트 스크립트 작성에 대한 나의 제한된 경험은 내가 설명한 것이 가능한지 이해하지 못하게했다.

이것은 내가 지금까지 가지고있는 스크립트입니다. 이렇게하면 열 F의 셀에 'id : 123456'이라는 단어가 포함되어 있으면 활성 스프레드 시트의 범위에있는 행이 삭제됩니다. 이 코드를 수정하여 "id : 123456"이라는 단어가 발견되면 다른 Google Sheet의 다른 열을보고 "id : 123456"이 포함 된 행을 삭제하도록이 코드를 수정하면됩니다. .

function onEdit() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var s = ss.getSheetByName('Sheet1'); // change to your own 
    var values = s.getDataRange().getValues(); 

    for (var row in values) 
    if (values[row][6] == 'id:123456') 

     s.deleteRow(parseInt(row)+1); 
}; 
+0

첫 번째 시트에있는 두 번째 시트의 모든 내용을 삭제 하시겠습니까? 아니면 첫 번째 시트를 플래그로 사용하여 특정 요소를 다음과 같이 제거할지 여부를 결정하고 싶습니까? 두 번째 시트에서 삭제 되었습니까? –

+0

@MatthewGraves 그래, 근본적으로 깃발. 첫 번째 시트의 값을 사용하여 두 번째 시트의 내용을 삭제해야하는지 확인합니다. 나중에 첫 번째 시트에 일을하는 다른 코드가 있습니다. – Trumpetplayer0098

답변

2

이 코드는 테스트하지 않았으므로 일부 수정을해야 성공적으로 실행할 수 있습니다. 그러나 기본 아이디어는 간단합니다 : 한 번에 두 장의 시트를 열어 두 번째 시트에서 첫 번째 시트의 if를 기반으로 두 번째 시트를 변경하십시오. 우리가 행을 삭제하고 있기 때문에 우리는 우리가없는 시작할 수있는 바닥에서 시작하지 않는 한, 당신의 삭제 코드를 복사 만 :

var ss1 = SpreadsheetApp.getActiveSpreadsheet(); 
var ss2 = SpreadsheetApp.getByID(0); //Change to the other sheet's ID, or somehow open it. 
var s1 = ss1.getSheetByName('Sheet1'); // change to your own 
var s2 = ss2.getSheetByName('Sheet1'); // change to your own 
var values = s1.getDataRange().getValues(); 

for (var row in values) 
    if (values[row][6] == 'id:123456') 
    var other_values = s2.getDataRange().getValues(); 
     for (var other_row in other_values) 
     if (other_values[row][6] == 'id:123456') 
      s2.deleteRow(parseInt(other_row)+1); 

중요한 것은 걱정하고 테스트 할 수 있습니다. (10 행 중 4 행과 8 행에 삭제할 항목이 포함되어 있다고 가정하면 4를 삭제할 수 있으며 8을 7로 바꾸지 만 행 8은 삭제합니다. 즉, 삭제해야 할 행을 놓친 것을 의미합니다.

관련 문제