0

在下面的 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);
};
4

1 回答 1

1

今天,上面发布的代码在 Google 表格中运行良好。昨天我什至保存、关闭、重新打开和重新测试了 Google 表格,但无济于事。今天,我打开并测试,发现一切都按预期执行。

希望上面的代码对某人有用。此代码的主要功能是呈现由单月工作表组成的工作簿的可滚动两个月视图。这个想法是仅向面向 Web 的演示文稿呈现值和格式。提供的按钮可以调用上面显示的两个函数中的任何一个。

于 2018-08-26T05:22:43.260 回答