Я пытаюсь скопировать и вставить форму от sheet2
до sheet1
в VBA. Однако, после вставки несколько раз. Я замечаю, что формы имеют одно и то же имя, что означает, что они используют один и тот же макрос, и макрос применяется только к первой форме, вставленной с тем же именем. Чтобы решить эту проблему, я использовал следующий код для случайного восстановления имени формы в листе 1 после копирования.Предоставление уникальных случайных имен для скопированных фигур
Public Function RL()
Dim Rand As String
Dim i As Integer, XSet As Integer
Dim MyCase As Integer
Application.Volatile
MyCase = 38: XSet = 85
Do
i = i + 1
Randomize
Rand = Rand & Chr(Int((XSet) * Rnd + MyCase))
Loop Until i = 5
RL = "X" & Rand
End Function
Однако, я обнаружил, что все еще может быть случаи, когда случайное имя RL
не являются уникальными в sheet1, Хотя это довольно редко, это случилось довольно много раз. Таким образом, я решил добавить в функцию функцию RL()
, чтобы узнать, существуют ли сгенерированные RL
в sheet1
. Тем не менее, я нашел это довольно много времени, поскольку в sheet1
существует множество форм. Есть ли эффективный способ, чтобы я мог копировать и вставлять уникально?
используя что-то вроде 'Nbr = Paste_Sheet.Shapes.Count' как' RL = "X" & Nbr' может решить вашу проблему. См. Мой ответ ниже. – Takedasama