首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么此ArrayList在Visual Basic中不使用声明即可工作?

为什么此ArrayList在Visual Basic中不使用声明即可工作?
EN

Stack Overflow用户
提问于 2019-05-20 21:49:44
回答 1查看 204关注 0票数 0

我在Word 2010中编写了一些示例代码,但在添加了10个变量后它就崩溃了。我现在正在尝试理解VB中的ArrayLists。

代码语言:javascript
运行
复制
 If (ActiveDocument.Name = "template.docm") Then
 With ActiveDocument

    On Error Resume Next
    .Variables.Add Name:="1", Value:="1"
    .Variables.Add Name:="2", Value:="2"

我认为代码开始向ArrayList添加对象,但我在VBA ArrayList上读到的所有内容都需要这样的声明:

代码语言:javascript
运行
复制
 Dim Variables As Object
 Set Variables = CreateObject("System.Collections.ArrayList") 

如果我遵循这个模式,使用.Variables.add创建更多的对象,那么索引在10之后就会中断,现在我只是想理解这个列表。

EN

回答 1

Stack Overflow用户

发布于 2019-05-21 02:30:02

variables是Document对象的集合属性,而不是ArrayList,在添加10个变量后似乎不会中断,至少在我的系统上是这样。

这帮助我找出了问题所在,因为没有声明数组/集合。

我的实际问题是在后来的循环中迭代。我之前有过:

代码语言:javascript
运行
复制
     Dim z As String
     int i = 1
     For Each f In myarray
        .Variables(i).Value = f
        i = i + 1
     Next f

并且为索引变量传递的参数实际上是一个字符串

代码语言:javascript
运行
复制
.Variables(name) 

所以:

代码语言:javascript
运行
复制
     int i = 1
     For Each f In myarray
     z = CStr(i)
        .Variables(z).Value = f
        i = i + 1
     Next f

修复了我的问题,感谢所有花时间帮助我的人!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56222346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档