在 Google 表格中,如何编写脚本将绘图移动到 sheet 上的特定位置?
In Google Sheets how can I write a script to move a drawing to a specific location on the sheet?
我有一个 Google sheet 有绘图,即形状。什么脚本会将形状移动到 sheet 上的指定位置?
这是一个 link 示例,我想单击蓝色矩形并让脚本移动绿色矩形以覆盖单元格 A1。
https://drive.google.com/open?id=1eFCwDiY90ZM5SIMa6C0rSdhG_oC-SWgsk8vAvjIR34s
这是我在 Google 中的第一个脚本,我找不到 select 绘图的方法。
我相信你的目标如下。
- 您想要在单击蓝色矩形时将绘图(绿色矩形)移动到单元格 "A1"。
为此,这个答案怎么样?
用法:
1。设置函数名称。
首先请将myFunction
的函数名设置为"the blue rectangle"。这样,当点击蓝色矩形时,myFunction
就是运行。
2。示例脚本。
function myFunction() {
// 1. Retrieve sheet.
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
// 2. Retrieve "the green rectangle".
const drawing = sheet.getDrawings().filter(e => e.getOnAction() != "myFunction")[0];
// 3. Move "the green rectangle".
drawing.setPosition(1, 1, 0, 0);
}
- 在本例中,蓝色矩形的函数名称为
myFunction
。所以使用它,检索到绿色矩形。
- 为了运行这个脚本,请点击
myFunction
设置的蓝色矩形。这样,绿色矩形被移动到单元格 "A1".
注:
- 这是一个示例脚本。所以请根据您的实际情况进行修改。
参考:
这就是我在 sheet 中所做的,并且很有效;可能有更好的方法,但至少这很容易实现:
function placeDrawing(row, col, offsetY, offsetX){
var ss = SpreadsheetApp.getActive().getSheetByName("sheetName");
var drawings = ss.getDrawings(); //This returns an array of all drawings in the sheet
drawings[0].setPosition(row, col, offsetY, offsetX);//for each drawing set the wanted position
}
当然,你需要一些测试来猜测确切的索引(我的是 8 张图纸中的 0 和 1),或者你可以做一个 for 来迭代它们。
我有一个 Google sheet 有绘图,即形状。什么脚本会将形状移动到 sheet 上的指定位置?
这是一个 link 示例,我想单击蓝色矩形并让脚本移动绿色矩形以覆盖单元格 A1。
https://drive.google.com/open?id=1eFCwDiY90ZM5SIMa6C0rSdhG_oC-SWgsk8vAvjIR34s
这是我在 Google 中的第一个脚本,我找不到 select 绘图的方法。
我相信你的目标如下。
- 您想要在单击蓝色矩形时将绘图(绿色矩形)移动到单元格 "A1"。
为此,这个答案怎么样?
用法:
1。设置函数名称。
首先请将myFunction
的函数名设置为"the blue rectangle"。这样,当点击蓝色矩形时,myFunction
就是运行。
2。示例脚本。
function myFunction() {
// 1. Retrieve sheet.
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
// 2. Retrieve "the green rectangle".
const drawing = sheet.getDrawings().filter(e => e.getOnAction() != "myFunction")[0];
// 3. Move "the green rectangle".
drawing.setPosition(1, 1, 0, 0);
}
- 在本例中,蓝色矩形的函数名称为
myFunction
。所以使用它,检索到绿色矩形。 - 为了运行这个脚本,请点击
myFunction
设置的蓝色矩形。这样,绿色矩形被移动到单元格 "A1".
注:
- 这是一个示例脚本。所以请根据您的实际情况进行修改。
参考:
这就是我在 sheet 中所做的,并且很有效;可能有更好的方法,但至少这很容易实现:
function placeDrawing(row, col, offsetY, offsetX){
var ss = SpreadsheetApp.getActive().getSheetByName("sheetName");
var drawings = ss.getDrawings(); //This returns an array of all drawings in the sheet
drawings[0].setPosition(row, col, offsetY, offsetX);//for each drawing set the wanted position
}
当然,你需要一些测试来猜测确切的索引(我的是 8 张图纸中的 0 和 1),或者你可以做一个 for 来迭代它们。