【发布时间】:2022-02-23 00:21:14
【问题描述】:
在这里需要一些帮助。 我有一个有几个标签的主谷歌表。它们中的大多数都包含私人信息,所以我必须将一个供公众查看的标签(sourcetab)导入另一个电子表格,以便我可以在谷歌网站上分享它。
我尝试过 importrange,但它只将值复制到另一个电子表格的目标选项卡。
问题 1:源选项卡有几个链接、图像和格式,我在目标上需要它。 问题 2:我的管理层将更新主源选项卡,并希望目标也能自动更新,并附上所有格式和链接。 我知道谷歌应用脚本可能会有所帮助。
因此,需要帮助来建议如何将源选项卡复制到目标选项卡并在主选项卡发生更改时对其进行更新。
[1][尝试过copytab,但它只在源中创建一个新标签,并且在主标签中有任何编辑时不会自动更新]
function copyTab() {
var ss, sourceSheet, sourceData, sourceDataRange, newSheetTab;
ss = SpreadsheetApp.getActiveSpreadsheet();//Get active spreadsheet
sourceSheet = ss.getSheetByName("Sample: Restriction Updates");//Get the source sheet tab
newSheetTab = ss.insertSheet("newsheet");//Create a new sheet tab
sourceDataRange = sourceSheet.getDataRange();
sourceDataRange.copyTo(newSheetTab.getRange(1, 1));//Copies the data from a range of
//cells to another range of cells. By default both the values and formatting are copied
}
[2][尝试创建到目的地但失败]
function myFunction() {
var source = SpreadsheetApp.openById('sourceID');
var sourceSheet = source.getSheetByName('Sample: Restriction Updates');
var sourceRange = sourceSheet.getDataRange();
var sourceValues = sourceRange.getValues();
var tempSheet = source.getSheetByName('temp');
var tempRange = tempSheet.getRange('A1');
var destinationsheet = SpreadsheetApp.openById('DestinationID');
var destination = source.getSheetByName('Test');
sourceRange.copyTo(tempRange); // paste all formats?, broken references
tempRange.offset(0, 0, sourceValues.length, sourceValues[0].length)
.setValues(sourceValues); // paste all values (over broken refs)
tempSheet.copyTo(destination); // now copy temp sheet to another ss
}
【问题讨论】:
-
欢迎来到 SO。请问您为什么决定将代码粘贴为图像而不是文本?
-
哎呀。对不起。这里很新。让我把它贴在这里。
标签: google-apps-script google-sheets google-sheets-formula