我想創建代碼來使用Word 2007中的VBA來表示表單文檔。我創建了表示Section,QuestionSet和Question的類。VBA - 如何將集合添加到集合
所以我有15個部分。我創建了一個函數來創建每個'Section'對象,將它添加到'Sections'集合中,然後銷燬該對象,結果是對象在集合(或某物)中保持持久性。
是否可以使用相同的方法將集合添加到集合中,還是我必須明確定義每個集合?
代碼模塊中:
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
那麼這是通過被稱爲:
Sub Initilise()
Set Sections = New Collection
DefineSection "PersonalDetails"
DefineQuestionSet "PersonalDetails", "PersonalDetails", 29, False
End Sub
不幸的是我已經改變了代碼,現在,嘗試只是創建獨立的收藏 - 然而我在'DefineQuestionSet'函數中收到了一行 'Sections.Item(SectionName).Add Qsets'中的錯誤。 – Stevo 2011-02-25 16:07:06
爲了澄清,代碼將對象添加到集合中,然後銷燬對象的實例,但它仍然保留在集合中,因此我不必跟蹤對象。這些收藏品是否一樣?即創建集合B,添加到父集合A,銷燬集合B,但因爲它被添加到集合A中,所以它仍然是集合A中的一個'項目'。 – Stevo 2011-02-25 16:12:01
錯誤消息是永遠神祕的'對象不支持此屬性或方法' – Stevo 2011-02-25 16:20:49