3

我编写了一个宏,它对文档中一组特定单词样式的每个实例执行某些操作。

为此,我以这种方式创建了一个名称数组:

Dim mylist(4) As String
mylist(1) = "Heading 1" 
mylist(2) = "Heading 2" 
mylist(3) = "Heading 3" 
mylist(4) = "Caption"

我找不到任何帮助页面(在 Office 帮助内或在 microsoft.com 上),其中提到了一种更短的方法。是否有任何语法可以让我将其简化为(伪代码)

mylist(1:4) = ["Heading 1", "Heading 2", "Heading 3", "Caption"]

我正在寻找一种用于单行加载数组的通用解决方案,无论是字符串还是数字,当我不想要像文档中的所有样式这样的整个集合时。

编辑:我在 Visual Basic 2008 中遇到了集合初始化语法?,这表明答案是“直到 VB10”。欢迎对该结论进行任何更新。

4

2 回答 2

6

这很接近但有点不同: Dim mylist(4) As String

Dim myarray As Variant
myarray = Array("Cat", "Dog", "Rabbit")

来自:http ://www.mrexcel.com/forum/excel-questions/18225-initializing-arrays-single-statement.html

于 2013-09-16T12:34:31.533 回答
1

如果内存不是问题(因此数据类型可以变体),则会生成一个基数为 1 的数组

Dim mylist As Variant
    mylist = [{"Heading 1", "Heading 2", "Heading 3", "Caption"}]
于 2019-08-08T21:33:19.687 回答