我正在尝试仅从与当前工作表不同的工作簿中的源工作表复制格式。基本上,源表格格式发生了变化,我想将格式化的更新提取到我的目标表格中(这是我将要使用的当前表格)。我正在使用以下代码,但我在最后一行得到“无法将电子表格转换为(类)”错误。任何见解?
var ss = SpreadsheetApp.openById("Source ID")
var source = ss
var destination = SpreadsheetApp.openById("Destination ID");
var range = source.getRange("N3:AE50");
range.copyFormatToRange(destination, 10, 27, 4, 50);
答案 0 :(得分:0)
您想将格式从电子表格A复制到电子表格B.如果我的理解是正确的,那么这个变通方法怎么样?我认为你的情况有几个答案,所以请把它当作其中之一。
正如tehhowch指出的,copyFormatToRange()
可用于电子表格中的相同表格。对于这种情况,我知道您想要在2个电子表格之间使用。在我的解决方法中,我使用了以下流程。
copyFormatToRange()
将源范围复制到目标表。var sourceA1Notation = "N3:AE50";
var destinationA1Notation = "D10"; // row=4, col=10 This is the cell of upper left for putting the source range.
var source = SpreadsheetApp.openById("Source ID");
var destination = SpreadsheetApp.openById("Destination ID");
var sourceSheet = source.getSheets()[0]; // You can also use source.getSheetByName(name)
var destinationSheet = destination.getSheets()[0]; // You can also use source.getSheetByName(name)
var copiedsheet = sourceSheet.copyTo(destination);
var sourceRange = copiedsheet.getRange(sourceA1Notation);
var destinationRange = destinationSheet.getRange(destinationA1Notation);
sourceRange.copyFormatToRange(
destinationSheet,
destinationRange.getColumn(),
destinationRange.getColumn() + sourceRange.getNumColumns() - 1,
destinationRange.getRow(),
destinationRange.getRow() + sourceRange.getNumRows() - 1
);
destination.deleteSheet(copiedsheet);
sourceA1Notation
,destinationA1Notation
,"Source ID"
和"Destination ID"
。
destinationA1Notation
是左上角的单元格,用于放置源范围。如果我误解了你想要的东西,我很抱歉。