Javascript 谷歌表单粘贴格式
在下面的GoogleSheets代码中,我从单独的月表中复制了两个月的日历数据,并将其粘贴到“TwoMonth”表中以供显示。一个函数将显示的月份提前一个月,另一个函数则相反,并备份一个月。其思想是将值和格式粘贴到两个不同的语句中。Forward1Mo功能按预期工作。Reverse1Mo函数粘贴值,但无法粘贴格式。这两个函数之间的代码几乎相同,但性能却不同。我做错了什么Javascript 谷歌表单粘贴格式,javascript,google-apps-script,google-sheets,copy-paste,google-sheets-macros,Javascript,Google Apps Script,Google Sheets,Copy Paste,Google Sheets Macros,在下面的GoogleSheets代码中,我从单独的月表中复制了两个月的日历数据,并将其粘贴到“TwoMonth”表中以供显示。一个函数将显示的月份提前一个月,另一个函数则相反,并备份一个月。其思想是将值和格式粘贴到两个不同的语句中。Forward1Mo功能按预期工作。Reverse1Mo函数粘贴值,但无法粘贴格式。这两个函数之间的代码几乎相同,但性能却不同。我做错了什么 function Forward1Mo() { var spreadsheet = SpreadsheetApp.ge
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);
};
今天,上面发布的代码在谷歌表单中运行良好。昨天我甚至保存、关闭、重新打开并重新测试了谷歌表单,但都没有结果。今天,我打开并测试发现一切都按预期进行
希望上面的代码对某些人有用。此代码的主要功能是显示由单月工作表组成的工作簿的可滚动两个月视图。其想法是仅向面向web的演示文稿展示价值观和格式。提供的按钮可调用上述两种功能中的任何一种。您是否已尝试过粘贴\u NORMAL粘贴\u普通粘贴值、公式、格式和合并。感谢您的回复,Ron。是的,我也试过正常粘贴。这个密码今晚似乎起作用了。想想看吧昨天我甚至关闭、保存并重新运行了代码,但都没有用。嗯,我对JS和GoogleSheets还不熟悉,很惊讶这和Excel和VB有多相似!