set object=nothing只是表示我(object)不用了,并不表示会是否实例,只有没有任何人引用后才会自动是否,你可以这样试验: Sub Main() Dim Obj1 As Class1 Dim Obj2 As Class2 DEBUG.PRINT "1" Set obj1=New Class1 DEBUG.PRINT "2" Set obj2=obj2 DEBUG.PRINT "3" Set Obj1=Nothing DEBUG.PRINT "4" Set Obj2=Nothing END SUBClass1: Private Sub Class_Initialize() Debug.Print "Class_Initialize" End SubPrivate Sub Class_Terminate() Debug.Print "Class_Terminate" End SubOutput: 1 Class_Initialize 2 3 4 Class_Terminate
Sub Main()
Dim Obj1 As Class1
Dim Obj2 As Class2 DEBUG.PRINT "1"
Set obj1=New Class1
DEBUG.PRINT "2"
Set obj2=obj2
DEBUG.PRINT "3"
Set Obj1=Nothing
DEBUG.PRINT "4"
Set Obj2=Nothing
END SUBClass1:
Private Sub Class_Initialize()
Debug.Print "Class_Initialize"
End SubPrivate Sub Class_Terminate()
Debug.Print "Class_Terminate"
End SubOutput:
1
Class_Initialize
2
3
4
Class_Terminate