Vba 通过同一项创建多个关键点

Vba 通过同一项创建多个关键点,vba,ms-word,powerpoint,Vba,Ms Word,Powerpoint,你好 我有一个主循环,它获取一篇文章的标题、描述和主要文本。我根据他们的文字风格来理解他们。 我还有一个在主循环结束时调用的函数。我有一本字典在里面。它完成了它的工作。现在我需要创建另一个字典或替代字典。在这里,我可以得到一篇文章的关键描述和一个项目——一篇文章的标题。意味着我可以有多个相同项的键 现在,每次调用dictionary2时,我都会遇到一个问题。add Key:=descriptionVariable Item:=titleofarticle(titleofword)我覆盖了现有的值

你好

我有一个主循环,它获取一篇文章的标题、描述和主要文本。我根据他们的文字风格来理解他们。 我还有一个在主循环结束时调用的函数。我有一本字典在里面。它完成了它的工作。现在我需要创建另一个字典或替代字典。在这里,我可以得到一篇文章的关键描述和一个项目——一篇文章的标题。意味着我可以有多个相同项的键

现在,每次调用dictionary2时,我都会遇到一个问题。add Key:=descriptionVariable Item:=titleofarticle(titleofword)我覆盖了现有的值,我知道原因。只是不知道如何避开它。有什么想法吗

For Each StyleInWord in ActiveDocument.Paragraphs
   If StyleInWord.Style = "Style of The Title" Then 
        tileOfTheWord = StyleInWord.Range 'here i store the paragraph.
   End If
   
   'The rest of the code works same as above, with its features.

   Call TheFunction
   
Next
Function Theunction(titleOfTheWord)
   'I here create a dictionary with key - The Title of The Article; Item - Item is a path to the image of that particular Title
End Function

解决方案是将另一本词典作为全局词典。因此,我不会每次调用函数时都删除并重新创建它

Set dictionary = new Scripting.dictionary

For Each StyleInWord in ActiveDocument.Paragraphs
   If StyleInWord.Style = "Style of The Title" Then 
        tileOfTheWord = StyleInWord.Range 'here i store the paragraph.
   End If
   
   'The rest of the code works same as above, with its features.

   Call TheFunction
   
Next
Function Theunction(titleOfTheWord)
   'I here create a dictionary with key - The Title of The Article; Item - Item is a path to the image of that particular Title
End Function

你是说一个键有多个值吗?您可以将值放入数组或集合中,并将其存储为字典值。这将有助于显示更多的现有代码。@TimWilliams不,我指的是同一个项目有许多键。我成功地做到了。顺便说一句,Word有一个内置的样式“Title”。它还有一个内置的文档属性“Title”,可以在vba中访问,也可以使用“快速零件”>“文档属性”菜单访问。