在vba中向数组添加值

时间:2014-03-07 04:13:25

标签: excel-vba vba excel

我在excel的vba中有一个数组。这个数组是一个集合大小,它不需要变量。

对于我的生活,我不知道在尝试向数组添加值时我做错了什么。 我目前的代码是:

Dim count As Integer
Dim name(1 to 361) As String
Dim tmp As String

Sub go()

For count = 2 To 10
    name(count) = cells(7,count)
Next count

End Sub

我已经尝试过各种变化。单元格(7,计数).value,name(count).value等...等等......

但是我一直在收到错误,告诉我我错过了一个或者有一般语法错误。

在我开始对阵列做任何有用的事情之前,在第一道障碍中摔倒真的很烦人。 这促使我找到无数据解决方案,但这将解决问题,而不是实际解决它。

2 个答案:

答案 0 :(得分:1)

第一个问题是go是保留字。从Sub中选择其他名称。同样适用于name。还有其他几个问题,见下文

' Dont use key words as procedure names
Sub MySub()
    ' Declare as procedure scope
    '  unless there is a very good reason to use module scope

    ' dont use key words as variable names
    Dim cnt As Long ' Integer ' use Long by default
    Dim nm(1 To 361) As String
    Dim tmp As String

    For cnt = 2 To 10
        nm(cnt) = Cells(7, cnt)
    Next cnt
End Sub

答案 1 :(得分:1)

我建议使用动态数组赋值

Sub go()
    Dim i as Long, N as Long
    Dim names() as Variant
    ' It will be initialized to names(1 to rows, 1 to columns)

    N = 10
    names = Range("RefToFirstCell").Resize(1,N).Value2

    For i=1 to N
        Debug.Print names(1,i)
    Next i

    'If you want to write back to the worksheet use `Range().Resize().Value2 = names`.

End Sub