0

рассмотрит следующий код:Почему метод google app script 'copyTo' заполняется 0?

/********************************************************************************************** 
** FUNCTION : CarryToThisWeek                ** 
** PARAM : String lastWeekName, String thisWeekName          ** 
** RETUEN : VOID                   ** 
** DESC  : Copies the carry row of sheet named lastWeekName to B/F row of sheet named ** 
**    thisWeekName.                ** 
**********************************************************************************************/ 

function CarryToThisWeek(lastWeekName,thisWeekName){ 
    var spreadSheet=SpreadsheetApp.getActiveSpreadsheet(); 
    var lastSheet=spreadSheet.getSheetByName('Oct_06'); // hard-coded the names for testing 
    var thisSheet=spreadSheet.getSheetByName('Oct_13'); 
    var sourceData = lastSheet.getRange(38, 4, 1, 7); 
    Logger.log(sourceData.getValues()); //shows the correct values 
    var destination = thisSheet.getRange(33, 4, 1, 7); 
    sourceData.copyTo(destination); //fills with 0 <<<<< 
    //following loop works fine 
    /*for(col=4;col<=10;col++){ 
    thisSheet.getRange(33, col).setValue(lastSheet.getRange(38, col).getValue()); 
    }*/ 
} 

Я довольно новый для Google скрипты приложения, хотя я использовал метод copyTo успешно в каком-то другом месте ранее.

Я боюсь, что мне не хватает чего-то очень глупого.

Может ли кто-нибудь указать мне, что я делаю неправильно?

+2

Со всем уважением есть моменты, когда я пропустил это - это поле формулы sourceData. – Vasim

ответ

0

попробовать это:

function CarryToThisWeek(lastWeekName,thisWeekName){ 
    var spreadSheet = SpreadsheetApp.getActiveSpreadsheet(); 
    var lastSheet = spreadSheet.getSheetByName('Oct_06'); 
    var thisSheet = spreadSheet.getSheetByName('Oct_13'); 
    var sourceData = lastSheet.getRange(38, 4, 1, 7).getValues(); 
    thisSheet.getRange(33, 4, 1, 7).setValues(sourceData); 
} 
+0

Спасибо за ваш ответ. Я знаю, что это сработает. Но на самом деле я хотел знать, что не так в методе copyTo в моем коде. – Dipto

0

Ну, я получил это.

спасибо Vasim за сообщение.
Действительно sourceData- это поле формулы, и формула копируется все время.

Изменено что

sourceData.copyTo(destination,{contentsOnly:true}); 

и она работает, как ожидалось.

Думаю copyValuesToRange() будет также работать.

Смежные вопросы