在下面的 Google 表格代码中,我从单独的月度表格中复制了两个月的日历数据,并将其粘贴到“TwoMonth”表格中以供显示。一个功能将显示的月份提前一个月,而另一个功能则相反并后退一个月。这个想法是将值和格式粘贴到两个不同的语句中。Forward1Mo 功能按预期工作。Reverse1Mo 函数粘贴值,但无法粘贴格式。两个函数之间的代码几乎相同,但性能却不同。我究竟做错了什么?
function Forward1Mo() {
var spreadsheet = SpreadsheetApp.getActive();
var showMo1 = spreadsheet.getRange('C19').getValue()+1;
var showMo2 = showMo1+1;
spreadsheet.getSheetByName(showMo1).getRange('B2:H15').copyTo(spreadsheet.getSheetByName('TwoMonth').getRange('B2:H15'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
spreadsheet.getSheetByName(showMo1).getRange('B2:H15').copyTo(spreadsheet.getSheetByName('TwoMonth').getRange('B2:H15'), SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);
spreadsheet.getSheetByName(showMo2).getRange('B2:H15').copyTo(spreadsheet.getSheetByName('TwoMonth').getRange('J2:P15'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
spreadsheet.getSheetByName(showMo2).getRange('B2:H15').copyTo(spreadsheet.getSheetByName('TwoMonth').getRange('J2:P15'), SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);
spreadsheet.getActiveSheet().getRange('C19').setValue(showMo1);
};
function Reverse1Mo() {
var spreadsheet = SpreadsheetApp.getActive();
var showMo1 = spreadsheet.getRange('C19').getValue()-1;
var showMo2 = showMo1+1;
spreadsheet.getSheetByName(showMo1).getRange('B2:H15').copyTo(spreadsheet.getSheetByName('TwoMonth').getRange('B2:H15'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
spreadsheet.getSheetByName(showMo1).getRange('B2:H15').copyTo(spreadsheet.getSheetByName('TwoMonth').getRange('B2:H15'), SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);
spreadsheet.getSheetByName(showMo2).getRange('B2:H15').copyTo(spreadsheet.getSheetByName('TwoMonth').getRange('J2:P15'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
spreadsheet.getSheetByName(showMo2).getRange('B2:H15').copyTo(spreadsheet.getSheetByName('TwoMonth').getRange('J2:P15'), SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);
spreadsheet.getActiveSheet().getRange('C19').setValue(showMo1);
};