2
我有一個集合作爲一個全局變量,其中會包含Project Task對象。項目關閉後全局變量會丟失它的值
我的宏的結構將是以下幾點:
Public TaskCollection As Collection
Sub Main()
Set TaskCollection = New Collection
GetData(List of project paths)
For Each task in TaskCollection
//ProcessTask()
Next
End Sub
Function GetData(List of project paths)
for each project path
Open project p
//do something else with the opened project...
for each Task t in p.Tasks
TaskCollection.Add t
next
Close project p
//AFTER THIS, the TaskCollection object will be totally empty
next
End Function
正如我在評論中所提到的,之後我關閉該項目,從那裏我得到了任務到TaskCollection的TaskCollection失去了它的價值。奇怪的是,它保留了以前的對象數量,但它們都是空的;
我試圖在GetData函數中本地創建一個集合對象,然後將它傳遞到TaskCollection全局變量的末尾,但效果是一樣的。
哦,這很有道理!感謝拜倫的答案。有沒有辦法將整個對象引用複製到項目關閉時不會死亡的對象中? – Laureant
你正陷入一片混亂。該技術被稱爲「深層複製」,您可以將所有數據放入一個新對象中。不確定VBA在這方面提供了什麼。您將更好地創建自己的課程,並只移動想要的數據。問題成爲如何處理'Task'內存在的引用之一。你也複製所有這些嗎?他們的參考呢?如果你知道你想要的屬性,只需抓住它們並將它們存儲在某個地方。這不太可能你需要它。 –