在Excel中引用新复制的复选框

时间:2018-06-12 14:18:36

标签: excel-vba vba excel

我从工作表中的另一列复制一个列(并排)。 由于列中有一个复选框,因此也会按照预期复制它。但奇怪的是,它与原版的名称相同。如何获取这个新创建的复选框的参考?

表单模块中的一些“简单”代码用于说明:

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之后 - 当'用户'脚本结束时......

0 个答案:

没有答案