=importrange()
기능을 사용하여 두 개의 다른 스프레드 시트 (두 번째 시트는 here)에 두 개의 시트를 동기화 (반향 동기화)합니다. 그러나 importrange()
첫 번째 시트를 변경할 때 두 번째 시트와 동기화되지 않습니다. 가져온 셀은 정적 상태를 유지하고 첫 번째 워크 시트에서 더 많은 변경이 이루어지면 변경되지 않습니다. 그것을 고칠 수있는 방법이 있습니까?두 개의 googlespreadsheet에서 = importrange()를 사용하여 두 개의 시트를 동기화하는 방법은 무엇입니까?
3
A
답변
4
두 번째 시트에 기능을 추가하자마자 첫 번째 시트에 추가 한 기능을 자신의 ID로 가져 오기 때문에 두 개의 시트에 =importrange()
기능을 사용할 수 없을 것이라고 생각합니다 인수로서.
Google Apps Script를 사용할 수 있습니다. 방금 very similar question here으로 대답했습니다. 그러나 나는 아래에 쓴 것을 반복 할 것이다.
두 가지 스프레드 시트에 스크립트를 추가하여 변경 내용이있는 다른 스프레드 시트에 내용을 복사하면됩니다. 예를 들어 아래의 내용을 두 스프레드 시트에 모두 추가하려면 소스 및 대상 정보를 서로 바꿔보십시오. 변경 사항은 따라서 모두 동기화 유지는 다른 스프레드 시트로 내용을 복사됩니다 중 하나를 문서로 만들 때
var sourceSpreadsheetID = "ID HERE";
var sourceWorksheetName = "SHEET NAME HERE";
var destinationSpreadsheetID = "ID HERE";
var destinationWorksheetName = "SHEET NAME HERE";
function importData() {
var thisSpreadsheet = SpreadsheetApp.openById(sourceSpreadsheetID);
var thisWorksheet = thisSpreadsheet.getSheetByName(sourceWorksheetName);
var thisData = thisWorksheet.getDataRange();
var toSpreadsheet = SpreadsheetApp.openById(destinationSpreadsheetID);
var toWorksheet = toSpreadsheet.getSheetByName(destinationWorksheetName);
var toRange = toWorksheet.getRange(1, 1, thisData.getNumRows(), thisData.getNumColumns())
toRange.setValues(thisData.getValues());
}
그냥 다음의 importData 기능에 변화 트리거를 추가합니다.
분명히 두 스프레드 시트가 동시에 업데이트되는 경우 문제가 발생할 것입니다.
3
꽤 유용한 스크립트였습니다. 스크립트에서 일부 변경 사항을 편집하여 열과 행에 대해 여러 시트를 동기화 할 수 있습니다. 코드가 약간 느리지 만 효과적입니다.
동일한 방법을 사용하여 여러 장을 병합하는 방법이 있다면 지금 생각하고 있습니다. 그렇지 않으면 멋진 방법이어야합니다.
// sync multiple sheets to a source sheet (“sheet 1”)
// change active sheet name to the designated sheet names.
function importData(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var activeSheet = ss.getActiveSheet();
var activeSheetName = ss.getActiveSheet().getSheetName();
// set the sheet to copy from sheet 1 to sheet 2. sheet 1 active sheet.
if(activeSheetName == "Daily report Counselling")
{
var thisSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var thisWorksheet = thisSpreadsheet.getSheetByName("Sheet1");
var thisData = thisWorksheet.getRange("A5:H");
var toSpreadsheet = SpreadsheetApp.getActiveSpreadsheet()
var toWorksheet = toSpreadsheet.getSheetByName("Sheet2");
var toRange = toWorksheet.getRange("A7:H");
toRange.setValues(thisData.getValues());
}
// if sheet 1 has not the active sheet choose from sheet 2.
if(activeSheetName == "Follow Up Needed Editable")
{
var thisSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var thisWorksheet = thisSpreadsheet.getSheetByName("Sheet2");
var thisData = thisWorksheet.getRange("A7:H");
var toSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var toWorksheet = toSpreadsheet.getSheetByName("Sheet1");
var toRange = toWorksheet.getRange("A5:H");
toRange.setValues(thisData.getValues());
}
}
재미있는 것이 있는지 알려주세요.
관련 문제
- 1. 두 개의 MySQL 데이터베이스를 동기화하는 방법은 무엇입니까?
- 2. 두 개의 트리 구조를 동기화하는 방법은 무엇입니까?
- 3. 두 개의 XML 파일을 동기화하는 방법은 무엇입니까?
- 4. Delphi에서 두 개의 ListView를 동기화하는 방법은 무엇입니까?
- 5. Android에서 두 개의 scrollview를 동기화하는 방법은 무엇입니까?
- 6. 두 개의 UIDatePickers를 동기화하는 방법
- 7. 두 개의 NSManagedObjectContext를 동기화하는 방법
- 8. 가변 비디오 속도로 두 개의 비디오를 동기화하는 방법은 무엇입니까?
- 9. 두 개의 DataBase 스키마를 Oracle 10G와 동기화하는 방법은 무엇입니까?
- 10. git에서 두 개의 원격 브랜치를 동기화하는 방법은 무엇입니까?
- 11. 다른 위치에서 두 개의 SQL Server 테이블을 동기화하는 방법은 무엇입니까?
- 12. 스레드 생성자에 두 개의 대기열을 동기화하는 방법은 무엇입니까?
- 13. 두 개의 스크롤 막대를 자바 스크립트로 동기화하는 방법은 무엇입니까?
- 14. 닫기 소켓을 두 개의 스레드와 동기화하는 방법은 무엇입니까?
- 15. 두 개의 SWT 버튼의 이벤트를 동기화하는 방법은 무엇입니까?
- 16. 두 개의 JPA 응용 프로그램을 동기화하는 데이터
- 17. 시뮬레이션에서 두 개의 코어를 동기화하는 방법
- 18. 두 개의 저장소를 하나의 프로젝트로 동기화하는 방법
- 19. 힘내에서 두 개의 다른 저장소를 동기화하는 방법
- 20. 두 개의 자식 저장소를 동기화하는 방법
- 21. 두 개의 ElasticSearch 클러스터를 동기화하는 방법
- 22. 두 개의 ftp 서버를 파이썬으로 동기화하는 방법
- 23. 두 개의 sqlite3 데이터베이스를 동기화하는 방법이 있습니까?
- 24. 두 개의 콜렉션을 조작하는 두 개의 스레드를 해결하는 방법은 무엇입니까?
- 25. 두 개의 개별 페이지를 두 개의 개별 iframe에로드하는 방법은 무엇입니까?
- 26. 두 개의 선택 또는 두 개의 쿼리를 결합하는 방법은 무엇입니까?
- 27. 두 컨트롤을 동기화하는 방법은 무엇입니까?
- 28. 2 개의 mysql 데이터베이스를 동기화하는 방법은 무엇입니까?
- 29. ZedGraph에서 세 개의 GraphPane을 동기화하는 방법은 무엇입니까?
- 30. 두 개의 개별 화면에 두 개의 창로드