Ссылка на вновь скопированный флажок в Excel - PullRequest
0 голосов
/ 12 июня 2018

Я копирую столбец из другого столбца в рабочей таблице (бок о бок).Поскольку в столбце есть флажок, он также скопирован - как и предполагалось.Но как ни странно, он получает то же имя, что и оригинал.Как я могу получить ссылку на этот недавно созданный флажок?

Некоторый «простой код» в модуле листа, чтобы проиллюстрировать:

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, но оба флажка также прикреплены к одной и той же ячейке ...

Структура кода не может быть изменена, поэтому мне нужны только предложения, какчтобы получить ссылку на этот новый созданный флажок.

РЕДАКТИРОВАТЬ

Я углубился в это: когда дублирует (клонирует)) выполняются (сценарий выполняется), они строго одинаковы в объекте Shapes: они получают одинаковые идентификаторы, одинаковую левую позицию и т. д. Я попытался вызвать три Application.CalculateFull, CalculateFullRebuild и CalculateUntilAsyncQueriesDone и DoEvents в моем сценарии сразу послеклон был создан, но он не обновляет объекты: они имеют точные свойства.Пока сценарий не завершится: потому что, если я бегу через объекты Shapes, когда сценарий завершается, все они получают свои собственные идентификаторы и т. Д. Похоже, что Excel выполняет свою уборку - после COPY / INSERT- когда пользовательский скрипт закончился ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...