首页 文章

Google表格粘贴格式

提问于
浏览
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);
};

1 回答

  • 1

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

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

相关问题