Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 更改克隆对象而不更改原始对象_Vba_Object_Set_Clone_Cloning - Fatal编程技术网

Vba 更改克隆对象而不更改原始对象

Vba 更改克隆对象而不更改原始对象,vba,object,set,clone,cloning,Vba,Object,Set,Clone,Cloning,是否可以在VBA中复制对象,以便克隆对象的更改不会影响原始对象 例如: 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 您需要在类模块中创建类似的方法(这里是Config),或者在常规模块中创建类似的方法(如

是否可以在VBA中复制对象,以便克隆对象的更改不会影响原始对象

例如:

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

您需要在类模块中创建类似的方法(这里是
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

您需要在类模块中创建类似的方法(这里是
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

这个例子一点帮助都没有-它取决于你正在使用的对象,但前提是你需要创建一个新的对象实例,这个代码只是将原始对象分配给另一个变量-不是“克隆”itMacro Man,它是一个图像,这个例子根本没有帮助-它取决于你正在使用的对象,但前提是你需要创建一个新的对象实例,这段代码只是将原始对象分配给另一个变量——不是“克隆”itMacro Man,而是一个ImageR3uK,最终解决了我的问题。非常感谢你,我能帮上忙!享受吧!;)这最终解决了我的问题。非常感谢你,我能帮上忙!享受吧!;)