我知道这是一个相当古老的话题,但我最近遇到了需要解决的类似情况。在我的搜索中,这是我唯一能找到的关于由于重复而导致的交联的参考资料。不幸的是,我无法想出一个纯自动化的解决方案,但通过一些聪明才智,我能够减少更新我的超链接以引用重复文件而不是原始文件所需的步骤数。
首先,我借用了一些我在网上找到的脚本代码来生成 Google Drive 文件夹中的文件列表及其 URL。我将在下面发布代码。这会生成一个名为“URL LIST”的新 Google 表格(如果您愿意,您可以在脚本中更改名称),一旦生成,您需要在您的 Google Drive 中的最近列表中找到并移动到包含复制的文件夹文件和表格。
接下来,在我的文档超链接的 Google 表格中,我创建了一个额外的选项卡,也称为 URL LIST,并在 A1 中添加了一个 IMPORTRANGE() 来导入 URL LIST 内容。完成所有这些后,您只需在制作的每个副本中更新这个引用,从而大大减少您需要进行的更新次数,即 IMPORTRANGE() 指向特定的 URL,所以每个新生成的 URL LIST 都会有一个包含超链接和 IMPORTRANGE() 的复制文档需要指向的新 URL。希望这是有道理的。
接下来,您的超链接将需要一个类似于 =HYPERLINK(VLOOKUP(A1,'URL LIST'!$A$1:$B$10,2,FALSE) 的公式来获取导入的 URL。重要的是要确保您表示查找范围未排序,或 FALSE,因为脚本吐出带有 URL 的文档列表的顺序可能会根据运行脚本时文件夹的排序方式而改变,并确保您不会需要对列表进行排序。然后,您可以将公式复制到需要超链接的每个单元格中。
同样重要的是,您的 VLOOKUP() 搜索键与您的 URL LIST 中列出的完全一样。
这种方法使我可以将更新超链接的步骤从 9 个步骤减少到每次复制时更新 IMPORTRANGE() 的 1 个步骤。
我希望这对您或其他人有所帮助!
将以下脚本复制并粘贴到您的脚本编辑器中:
// replace your-folder below with the folder name for which you want a listing
function listFolderContents() {
var foldername = 'your-folder';
var folderlisting = 'URL LIST ';
var folders = DriveApp.getFoldersByName(foldername)
var folder = folders.next();
var contents = folder.getFiles();
var ss = SpreadsheetApp.create(folderlisting);
var sheet = ss.getActiveSheet();
sheet.appendRow( ['name', 'link'] );
var file;
var name;
var link;
var row;
while(contents.hasNext()) {
file = contents.next();
name = file.getName();
link = file.getUrl();
sheet.appendRow( [name, link] );
}
};