code from learn.microsoft:
Dim R As Long, Names As String
For R = 1 To ActiveProject.Resources.Count
Names = ActiveProject.Resources(R).Name & ", " & Names
Next R
MsgBox Names
在项目文件中定义资源时非常有效。但是当您只在子项目中使用资源时,Resources collection
为空。
手动添加新资源没有任何更改-仍然计数为0。使用功能区和添加资源-计数此资源,但其他不。
如何统计主项目子项目中的资源?
当我终止子项目链接时,Resources collection
计数正确
任何想法?
Sebastian,没有错误。我假设"主要项目"你的参考是一个动态的大师。在主项目中,子项目不是主项目的一部分,相反,主项目包含指向每个子项目的指针。所以当你在master中运行代码时,它会在Active中循环。项目时,循环在母版中查找对象,而母版没有资源对象。这里是宏的修改版本,它将显示资源池中所有资源的名称,假设所有子项目都在使用资源池。如果有混合的子项目共享和/或使用他们自己的资源,代码将需要修改。
Names As String
Dim Res As Resource
For Each Res In ActiveProject.Subprojects(1).SourceProject.Resources
Names = Res.Name & ", " & Names
Next Res
MsgBox Names
End Sub
john-project给出的解决方案解决了这个问题。
使用Resources collection
浏览资源集合在另一种情况下仍然存在问题:项目文件包含自己的资源,由插入键插入的空白行分隔。这样的行有一个标识符,但所有字段都是空的。使用集合浏览资源会产生一个错误(例如,当读取资源名称时)。