gpt4 book ai didi

vba - 项目关闭后全局变量失去其值

转载 作者:行者123 更新时间:2023-12-03 02:01:43 25 4
gpt4 key购买 nike

我有一个集合作为全局变量,其中包含项目任务对象。

我的宏的结构如下:

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全局变量中,但是效果是一样的。

最佳答案

任务添加到集合时,您正在添加对对象的引用。这些仅当它们引用的对象存在时才有意义。当项目关闭时,这些对象将被销毁。

如果您想使用它们的数据,则需要使用值类型(StringInteger 等)复制数据,而不是引用对象。或者,您可以保持项目打开,直到使用完对象为止。

关于vba - 项目关闭后全局变量失去其值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30511448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com