0

많은 검색을 시도했지만 여러 가지 제안을 발견했지만 그 중 아무 것도 올바르게 작동하지 않습니다.Google 스프레드 시트 복사 값 및 형식 스크립트 문제

Google 팀의 여러 회원이 업데이트 한 4 개의 별도 Google 스프레드 시트 (나 혼자 소유)가 있습니다. 다양한 값을 자동으로 업데이트하는 결합 된 스프레드 시트를 만들고 싶습니다.

Importrange (작동하지만 서식을 가져 오지 못함)을 시도했지만 copyValuesandFormattingcopyFormatting도 시도했습니다. 문제는 내가 CopyValuesandFormatting으로 첫 번째 탭만 채우고 스크립트의 다음 부분은 작동하지 않는다는 것입니다. 아무도 내 문제가 무엇인지 알 수 있습니까? 제가 작업 해본 스크립트의 일부는 아래에 있습니다 (단지 2 장을 합치면 작동하지 않을 것입니다).

function copyValuesandFormatting() { 
    var ss = SpreadsheetApp.openById("OtherSheetURL1"); 
    var sourceSheet = ss.getSheetByName("Jayson"); 
    var ss2 = SpreadsheetApp.openById("CombinedSheetURL"); 
    var targetSheet = ss2.getSheetByName("Jayson"); 
    var fromRange = ss.getRange("A1:Z50"); 
    var toRange = ss2.getRange("A1:Z50"); 
    var values = fromRange.getValues(); 
    var fontColors = fromRange.getFontColors(); 
    var backgrounds = fromRange.getBackgrounds(); 
    var fonts = fromRange.getFontFamilies(); 
    var fontWeights = fromRange.getFontWeights(); 
    var fontStyles = fromRange.getFontStyles(); 

    toRange.setBackgrounds(backgrounds); 
    toRange.setFontColors(fontColors); 
    toRange.setValues(values); 
    toRange.setFontFamilies(fonts); 
    toRange.setFontWeights(fontWeights); 
    toRange.setFontStyles(fontStyles); 

} 

function copyValuesandFormatting() { 
    var ss3 = SpreadsheetApp.openById("OtherSheetURL2"); 
    var sourceSheet = ss3.getSheetByName("Robin"); 
    var ss4 = SpreadsheetApp.openById("CombinedSheetURL"); 
    var targetSheet = ss4.getSheetByName("Robin"); 

    var fromRange = ss3.getRange("A1:Z50"); 
    var toRange = ss4.getRange("A1:Z50"); 
    var values = fromRange.getValues(); 
    var fontColors = fromRange.getFontColors(); 
    var backgrounds = fromRange.getBackgrounds(); 
    var fonts = fromRange.getFontFamilies(); 
    var fontWeights = fromRange.getFontWeights(); 
    var fontStyles = fromRange.getFontStyles(); 

    toRange.setBackgrounds(backgrounds); 
    toRange.setFontColors(fontColors); 
    toRange.setValues(values); 
    toRange.setFontFamilies(fonts); 
    toRange.setFontWeights(fontWeights); 
    toRange.setFontStyles(fontStyles); 


} 

답변

0

오늘 아침에 원본 시트 하나 하나에 CopyTo를 사용할 수 있었던 것처럼 보입니다.

function copyTo({ 
    //gets and formats data ranges, to and from sheets. 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var target = SpreadsheetApp.openById("DestinationURL"); 
    var source_sheet = ss.getSheetByName("Jayson"); 
    var target_sheet = target.getSheetByName("Jayson"); 
    var source_range = source_sheet.getRange("A1:Z100"); 
    var target_range = target_sheet.getRange("A1:Z100"); 
    //gets then writes values defined in setup 
    var values = source_range.getValues(); 
    var values = source_range.getValues(); 
    var fontColors = source_range.getFontColors(); 
    var backgrounds = source_range.getBackgrounds(); 
    var fonts = source_range.getFontFamilies(); 
    var fontWeights = source_range.getFontWeights(); 
    var fontStyles = source_range.getFontStyles(); 
    target_range.setValues(values); 
    target_range.setBackgrounds(backgrounds); 
    target_range.setFontColors(fontColors); 
    target_range.setValues(values); 
    target_range.setFontFamilies(fonts); 
    target_range.setFontWeights(fontWeights); 
    target_range.setFontStyles(fontStyles); 
    //for checking last row with data in cell and formatting range 
    var lastRow = source_sheet.getLastRow(); 
관련 문제