Estoy intentando crear código para representar un documento de formulario usando VBA en Word 2007. He creado clases para representar Section, QuestionSet y Question.VBA - Cómo agregar una colección a una colección de colecciones
Así que tengo 15 Secciones. Creé una función para crear cada Objeto 'Sección', lo agregué a la Colección 'Secciones' y luego destruí el objeto, el resultado es que los objetos permanecen persistentes en la colección (o algo así).
¿Es posible utilizar el mismo método para agregar colecciones a las colecciones o tendré que definir cada colección explícitamente?
Códigoen el Módulo:
Public Sections As Collection
Function DefineSection(ByVal SectionName As String)
Set Section = New clsSection
Section.myName = SectionName
Sections.Add Section, SectionName
End Function
Function DefineQuestionSet(ByVal SectionName As String, ByVal Name As String, ByVal NoOfQuestions As Integer, ByVal IsMutuallyExclusive As Boolean, Optional ByVal DependentOnSection As String)
Dim Qsets As Collection
Set Qsets = New Collection
Set QuestionSet = New clsQuestionSet
QuestionSet.Name = Name
QuestionSet.NoOfQuestions = NoOfQuestions
QuestionSet.MutuallyExclusive = IsMutuallyExclusive
If Not (DependentOnSection) = "" Then
QuestionSet.DependentOnSection = DependentOnSection
End If
Qsets.Add QuestionSet
Sections.Item(SectionName).Add Qsets
End Function
Entonces esto se llama a través de:
Sub Initilise()
Set Sections = New Collection
DefineSection "PersonalDetails"
DefineQuestionSet "PersonalDetails", "PersonalDetails", 29, False
End Sub
Por desgracia he cambiado el código de momento, para tratar de simplemente crear colecciones independientes - sin embargo, Obtuve un error de la línea 'Sections.Item (SectionName) .Add Qsets' en la función 'DefineQuestionSet'. – Stevo
Solo para aclarar, el código agrega los objetos a la colección y luego destruye la instancia del objeto, pero permanece persistente en la colección, por lo que no es necesario que realice un seguimiento de los objetos. ¿Es lo mismo para las colecciones? es decir, crear la colección B, agregar a la colección primaria A, destruir la colección B, pero como se agregó a la colección A, sigue siendo un 'elemento' en la colección A. – Stevo
el mensaje de error es el siempre enigmático 'objeto no admite esta propiedad o método ' – Stevo