Я полагаю, что ваша цель заключается в следующем.
- Вы хотите переместить чертеж следующим образом при нажатии на синий прямоугольник.
- Переместите зеленый прямоугольник в ячейку «A1».
- Переместите фиолетовый треугольник в ячейку «D7».
- Переместите оранжевый кружок в ячейку «I3» .
Как насчет этого ответа?
Проблема и обходное решение:
К сожалению, на текущем этапе каждый рисунок не может различаться по цвету объекта и идентификатору. Поэтому для достижения вашей цели, в качестве обходного пути, я хотел бы предложить поместить каждый чертеж в заранее определенные ячейки и использовать каждый чертеж в качестве идентификатора якорной ячейки.
Использование:
1. Задайте имя функции.
- Скопируйте и вставьте следующий пример сценария.
- Сначала установите имя функции
myFunction
на "синий прямоугольник". В качестве образца предварительно определенных ячеек для каждого рисунка, пожалуйста, поместите верхний левый угол «зеленого прямоугольника», «фиолетового треугольника» и «оранжевого круга» в ячейки «A10», «A13» и «A18». соответственно. Вы можете увидеть его на следующем изображении.
Запустите следующий пример сценария, нажав «синий прямоугольник».
2. Пример сценария.
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
. Таким образом, каждый чертеж перемещается.
Результат:
При запуске сценария для указанного выше входного изображения могут быть получены следующие выходные данные.
Примечание:
- Это пример сценария. Поэтому, пожалуйста, измените это для вашей реальной ситуации.
Ссылка: