回到另一个看似不可能完成的任务。显然,我办公室里的人无法在云端硬盘上移动文件夹,因此我的任务是自动化移动过程。正如您在Sheet(下面的链接)中看到的,我有一个路由系统的设置。
https://drive.google.com/file/d/0B2LmfUtAXAgkN1VHQlphOFEyNVk/view?usp=sharing
我有条件,例如文件夹的名称,应该在哪个文件夹以及需要移动到哪个文件夹。基本上,我正在尝试找到一个执行以下操作的脚本:
1)在Google表格中选择按钮时有效 2)将驱动器中的文件夹从文件夹A移动到文件夹B. 3)使用单元格引用。
不知道如何找到文件夹ID,因为要移动的文件夹会根据电子表格条件发生变化,这无济于事。我可能不会使用任何外部程序,因为它在政府系统上。有任何想法吗?我有这个很棒的脚本,但它似乎不能使用单元格引用。
function copyAndMove(file,folder){
var newfile=file.makeCopy('copy of '+file.getName(D9));
newfile.addToFolder(B1);//
newfile.removeFromFolder(DocsList.getRootFolder());}
非常感谢任何帮助!
答案 0 :(得分:0)
要获取单元格中的值,您必须使用以下格式
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
// First argument is row, second is column. 1,2 returns the value in B1
var range = sheet.getRange(1, 1);
var value = range.getValue();
所以你的最终代码是
function copyAndMove() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
// First argument is row, second is column. 9,4 returns the value in D9
var D9 = sheet.getRange(9, 4).getValue();
var B1 = sheet.getRange(1, 2).getValue();
var file = DriveApp.getFilesByName(D9).next();
var folder = DriveApp.getFoldersByName(B1).next();
var newfile = file.makeCopy('copy of '+ D9, folder);
file.setTrashed(true);
}
我不确定你想对newfile.removeFromFolder(DocsList.getRootFolder());
做什么,但是如果你想删除原始文件,那么这个函数的最后一行就是这样做的。
答案 1 :(得分:0)
找到将一个文件夹移动到另一个文件夹的代码。我已经找了好几个星期了,偶然发现了它。抱歉给您带来不便。