我有堆叠的对象带到我的文档上(直接从文件夹拖动,并手动定位在第一个对象应该在的位置) . 对象的数量各不相同,所以我需要考虑到这一点的代码 . 因此,应定位物体,使每个物体之间的距离水平为30毫米 . 垂直位置不得改变 . 其中一个对象(堆栈的最后一个或第一个)的位置应保持不变 . 我知道如何只使用动作来做到这一点,但问题是所用对象的数量 . 数量不匹配时发生错误 .
我需要使用条件句吗?如何定义形状等?
这是我记录动作的方式:首先我选择了顶部物体并将其水平移动了30毫米 . 然后我将堆栈顶部的下一个对象添加到现有选择中 . 然后我将选定的物体移动了30mm . 我再次选择堆栈顶部的新对象进行选择并执行运动 . 我这样做,直到堆栈的最后一个对象单独在其原始位置 . 在这种情况下,使用了8个对象 . 这是使用操作创建的代码:
Sub positioning()
' Recorded 16.2.2015
ActiveLayer.Shapes(1).Move 1.181102, 0#
ActiveDocument.CreateShapeRangeFromArray(ActiveLayer.Shapes(2), ActiveLayer.Shapes(1)).Move 1.181102, 0#
ActiveLayer.Shapes(3).AddToSelection
ActiveSelection.Move 1.181102, 0#
ActiveLayer.Shapes(4).AddToSelection
ActiveSelection.Move 1.181102, 0#
ActiveLayer.Shapes(5).AddToSelection
ActiveSelection.Move 1.181102, 0#
ActiveLayer.Shapes(6).AddToSelection
ActiveSelection.Move 1.181102, 0#
ActiveLayer.Shapes(7).AddToSelection
ActiveSelection.Move 1.181102, 0#
End Sub
我用google搜索了很多关于VBA的内容,但是对于这种情况我找不到足够简单的帮助 . 如果有人想到或展示如何编程,我将不胜感激,对我来说将是一个巨大的帮助!
1 回答
它应该是这样的:
当然,你应该先将每个
sr(i)
放在位置参考上:)像这样: