【发布时间】:2014-10-08 00:14:12
【问题描述】:
我已经为此工作了两天,辗转反侧,这就是我现在的位置。
Private Function SetColumns(sRptVer As String, iColumns() As Integer)
If sRptVer = "Q1" Then
iColumns(1) = 5 '<- Subscript out of range error here Hovering shows _
'"iColumns(1)=<Subscript out of range>"
iColumns(2) = 6
iColumns(3) = 7
iColumns(4) = 17
End If
If sRptVer = "Q2" Then
iColumns(1) = 5
iColumns(2) = 6
iColumns(3) = 7
iColumns(4) = 8
iColumns(5) = 9
iColumns(6) = 10
iColumns(7) = 17
End If
SetColumns = iColumns()
End Function
Private Sub Test2()
Dim iColValue() As Integer
Dim sRptVer As String
Dim iColumns() As Integer
sRptVer = "Q1"
iColValue() = SetColumns(sRptVer, iColumns())
For i = 1 To 10
Debug.Print iColValue(i)
Next i
End Sub
目标是能够传递一个指定季度的字符串并返回一个数组,该数组将用于设置我将迭代的列以从 Excel 电子表格中获取值。 (我将数据从 Excel 提取到 Access 中)。 我尝试从 iColumns(0) 开始。没有不同。 注意:Access vba 不喜欢像 iColumns()={1,2,3,4} 这样设置数组。它对“{}”犹豫不决。 Access vba 似乎也不喜欢“ReDim”,我收到编译错误:当我在 SetColumns 函数中“将 icolumns() 重新设置为整数”时出现语法错误。 提前致谢。
【问题讨论】:
-
将
Dim iColValue() As Integer更改为ReDim iColValue(10) as Integer(),然后将Dim iColumns() As Integer更改为ReDim iColumns(10) as Integer,然后将as Integer()添加到函数定义的末尾。这应该让你开始
标签: vba ms-access-2010