我有一个Google图纸,上面有四个图纸,即形状。什么脚本可以将每个形状移动到图纸上的指定位置?
这里是一个示例的链接,在该示例中,我想单击蓝色矩形,并使脚本将绿色矩形移至单元格A1,将紫色三角形移至单元格D7,将橙色圆圈移至单元格I3。 / p>
https://drive.google.com/open?id=1eFCwDiY90ZM5SIMa6C0rSdhG_oC-SWgsk8vAvjIR34s
我找不到选择特定图纸的方法。
答案 0 :(得分:3)
我相信您的目标如下。
为此,这个答案如何?
不幸的是,在当前阶段,不能通过对象颜色和标识符来区分每个图形。因此,为了实现您的目标,作为一种解决方法,我建议将每个图形放置到预定的单元格中,并使用每个图形的锚点单元作为标识符。
myFunction
的函数名称设置为“蓝色矩形”。作为每个图形的样本预定单元格,请将“绿色矩形”,“紫色三角形”和“橙色圆圈”的左上角放在“ A10”,“ A13”和“ A18”。您可以在下图看到它。
通过单击“蓝色矩形”运行以下示例脚本。
function myFunction() {
// 1. Prepare an object for searching Drawings.
const obj = {
"10": {name: "green rectangle", moveTo: [1, 1]}, // <--- A1
"13": {name: "purple triangle", moveTo: [7, 4]}, // <--- D7
"18": {name: "orange circle", moveTo: [3, 9]}, // <--- I3
};
// 2. Retrieve sheet.
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
// 3. Move drawings.
sheet.getDrawings().forEach(d => {
const arow = d.getContainerInfo().getAnchorRow();
if (arow in obj) {
d.setPosition(...obj[arow].moveTo, 0, 0);
}
})
}
myFunction
。然后使用锚点单元作为标识符来检索每个图形。myFunction
的蓝色矩形。这样,每个图形都会移动。为上面的输入图像运行脚本时,可以获得以下输出。