我在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等...等等......
但是我一直在收到错误,告诉我我错过了一个或者有一般语法错误。
在我开始对阵列做任何有用的事情之前,在第一道障碍中摔倒真的很烦人。 这促使我找到无数据解决方案,但这将解决问题,而不是实际解决它。
答案 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