我不确定是否有其他方法,但我过去处理绘图的方法是检查与它们相关联的功能。
如果您只需要一个标签,您应该能够假装按钮正在调用“标签”函数,而该函数不做任何事情。这是一个重置按钮位置的脚本。
一个例子:
function phaseTwoButtonPositions(){
var drawings = os.getDrawings();
for (var i=0; i<drawings.length;i++)
{
var drawing = drawings[i];
console.log("L208:%s",drawing.getOnAction(), drawing.getContainerInfo().getAnchorColumn());
if (drawing.getOnAction() == "doThisThing") drawing.setPosition(8, 40,0,0);
if (drawing.getOnAction() == "doThatThing") drawing.setPosition(8, 2,0,0);
if (drawing.getOnAction() == "doAnotherThing") drawing.setPosition(11, 2,0,0);
}
}
编辑:这更适合您的情况。你必须浏览所有的图纸,检查它们的动作是否匹配,并相应地设置它们。这会根据复选框的状态将非活动组移出屏幕(超过 40 列)
function phaseTwoButtonPositions(){
var drawings = os.getDrawings();
var checkbox = os.getRange("A1").getValue();//TRUE OR FALSE
for (var i=0; i<drawings.length;i++)
{
var drawing = drawings[i];
if (checkbox && drawing.getOnAction() == "group1") drawing.setPosition(8, 40,0,0);//move group one off screen
if (checkbox && drawing.getOnAction() == "group2") drawing.setPosition(8, 2,0,0); //move group two on screen
if (!checkbox && drawing.getOnAction() == "group2") drawing.setPosition(8, 40,0,0);//move group two off screen
if (!checkbox && drawing.getOnAction() == "group1") drawing.setPosition(8, 2,0,0); //move group oneon screen
}
}