相关疑难解决方法(0)

使用本机代码中的值列表填充VBA数组

希望能有一个快速回答这个问题....

我有一个数组,我想用一个参数列表填充它.

Sub EasyArrayInput()
Dim myArr() as variant
myArr = ("string1", "string2", "string3")
End Sub
Run Code Online (Sandbox Code Playgroud)

我很清楚如何遍历和填充for/next或do/while,但是当值不会在不使用硬编码方法的情况下改变时能够填充数组会很好.

Sub UsualMethodThatIDontWantToDo()
Dim myArr(1 to 3) as variant
myArr(1) =  "string1"
myArr(2) =  "string2"
myArr(3) =  "string3"
End Sub
Run Code Online (Sandbox Code Playgroud)

无论如何在类似于第一个代码片段的方法中做到这一点?我宁愿那样做.如果这个问题被提出/回答,我很抱歉,但我不太确定我所询问的方法是什么.

提前致谢!

编辑:解决方案

下面的代码片段(来自偶然发送的链接)将创建一个变量和exaclty我想要的数组.

Sub EasyArrayInput()
Dim myArr() as variant
myArr = Array("string1", "string2", "string3")
End Sub
Run Code Online (Sandbox Code Playgroud)

如果您只有字符串并且不想初始化变体,则下一个代码段看起来很有用:

Sub EasyArrayInput()
Dim myArr() as String
myArr = Split("String1,String2,String3", ",")
End Sub
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

7
推荐指数
2
解决办法
3万
查看次数

Microsoft Visual Basic:如何初始化数组变量?

我编写了一个宏,它对文档中特定Word样式集的每个实例执行某些操作.

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

Dim mylist(4) As String
mylist(1) = "Heading 1" 
mylist(2) = "Heading 2" 
mylist(3) = "Heading 3" 
mylist(4) = "Caption"
Run Code Online (Sandbox Code Playgroud)

我无法找到任何帮助页面(在Office帮助或microsoft.com中)提到了一个更短的方法.是否有任何语法可以让我简化为(伪代码)

mylist(1:4) = ["Heading 1", "Heading 2", "Heading 3", "Caption"]
Run Code Online (Sandbox Code Playgroud)

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

编辑:我在Visual Basic 2008中运行了Collection初始化语法?,这表明答案是"直到VB10".任何对该结论的更新都将受到欢迎.

vba initialization

3
推荐指数
1
解决办法
9080
查看次数

标签 统计

vba ×2

excel ×1

excel-vba ×1

initialization ×1