在VBA中添加到集合的开头

时间:2016-02-18 11:39:52

标签: excel vba excel-vba

无论如何都要按位置而不是索引向集合的起点添加值。

例如:

<ItemsControl ItemsSource="{Binding Aded}">
   <ItemsControl.ItemsPanel>
      <ItemsPanelTemplate>
         <StackPanel Orientation="Vertical"/>
      </ItemsPanelTemplate>
   </ItemsControl.ItemsPanel>
   <ItemsControl.ItemTemplate>
      <DataTemplate>
         <!-- some data template -->
      </DataTemplate>
   </ItemsControl.ItemTemplate>
</ItemsControl>

使用.add函数,它只是添加到集合的末尾,我希望有一种方法可以添加到开头。

迈克尔

2 个答案:

答案 0 :(得分:2)

请参阅Visual Basic for Application reference about Collection.Add

我猜两个链接都很有用

https://msdn.microsoft.com/library/f26wd2e5(v=vs.100).aspx

看起来您可以在调整添加位置之前或之后使用。

的语法是:object.Add(Item,Key [,{Before | After}])

因此,如果您在其中任何一个插槽中输入一个数字(它是一个索引引用),它将把它放在之前/之后。请注意,您不能同时使用前后两者。

答案 1 :(得分:0)

您可以使用可选的Before和After参数来维护对象的有序集合。要添加的项目分别放置在集合中,该集合分别由Before或After参数标识的项目之前或之后。 例如,将集合设置为等于1会在集合的开头插入一个项目,因为集合对象是基于1的。

因此,只需使用Before:= 1在集合的开头添加即可,例如:

Collection.Add Item:=something, Before:=1

在Doug Coats共享的链接中找到