2015-11-19 4 views
1

Возможно ли скопировать объект в VBA, чтобы изменения объекта clone не влияли на исходный объект?Изменение клонированного объекта без изменения исходного объекта

Например:

Dim clone_object As Variant 
Set clone_object = some_object 
some_object.Left = 0 
clone_object.Left = 666 
'I want it to show 0 instead of 666 
Debug.print some_object.Left 
+0

Этот пример не помогает вообще - это зависит от того, с каким объектом вы работаете, но предпосылка заключается в том, что вам нужно создать новый экземпляр объекта, этот код просто назначает исходный объект другой переменной - не «клонирование» –

+0

Macro Man, это изображение –

ответ

0

Вам нужно создать такие методы, как это в вашем модуле класса (здесь Config) или сделать то же самое в обычном модуле, если это не пользовательский объект:

Friend Sub SetConfig(SrcConfig As Config) 
    Set Cfg = SrcConfig 
End Sub 

Public Function Copy() As Config 
    Dim Result As Config 
    Set Result = New Config 
    Call Result.SetConfig(Cfg) 
    Set Copy = Result 
End Function 
+0

R3uK, что в конечном итоге решило мою проблему. Большое спасибо –

+0

Рад, что я мог помочь! Наслаждайтесь SO! ;) – R3uK

 Смежные вопросы

  • Нет связанных вопросов^_^