我从工作表中的另一列复制一个列(并排)。 由于列中有一个复选框,因此也会按照预期复制它。但奇怪的是,它与原版的名称相同。如何获取这个新创建的复选框的参考?
表单模块中的一些“简单”代码用于说明:
Dim cell as Range
Set cell = cells(1,2)
Columns(cell.Usedrange.Column).Copy
cell.EntireColumn.Insert
我通过循环遍历每个Checkbox对象来选择第一次出现的原始名称来管理引用(我已经尝试过这个结果):
Dim oCB as Checkbox
For Each oCB In .CheckBoxes
If oCB.Name = "nameOfOriginalCheckbox" Then
Exit For
End If
Next oCB
但它并不令人满意,因为有两个具有相同名称的“对象”(?),因为它不是防弹的。我也尝试使用TopLeftCell属性,但两个复选框也附加到同一个单元格...
代码的结构无法更改,因此我只需要了解如何获取此新创建的Checkbox的引用。
修改
我已经深入研究了它:当制作dublicates(克隆)时(脚本运行)它们在Shapesobject中完全相同:它们获得相同的ID,相同的左侧位置等。 我已经尝试在创建克隆之后调用我的脚本中的三个Application.CalculateFull,CalculateFullRebuild和CalculateUntilAsyncQueriesDone以及DoEvents,但它既没有更新对象:它们具有确切的属性。在脚本完成之前: 因为如果我运行Shapes对象,当脚本完成后,他们都会获得自己的ID等... 看起来好像Excel正在整理 - 在COPY / INSERT之后 - 当'用户'脚本结束时......