我有一个函数,用于收集用户表单中勾选的月份,其中包含复选框:
Function get_entries() As Boolean()
这将返回一个2D布尔数组(4,11),表示5 x 12个复选框,这些复选框表示从用户表单中选择的月份
在我的主要功能中:
Dim montharr() As Boolean
montharr = get_entries()
Call myfunc1(montharr(0))
Call myotherfunc(montharr(1))
Call myotherfunc(montharr(2))
Call myotherfunc(montharr(3))
Call myotherfunc(montharr(4))
我无法成功将12个元素的单个数组传递给subs。我已经尝试将项目声明为变体,但这不起作用,并且花了很多时间试图让它工作。欢迎任何想法。
答案 0 :(得分:1)
这是"切片"的一种方式二维数组:
Sub ArraySlicing()
Dim arr(1 To 5, 1 To 5)
Dim slice
Dim x, y
Dim a As Application
For y = 1 To 5
For x = 1 To 5
arr(y, x) = "R" & y & ":C" & x
Next x
Next y
Set a = Application
'get first "column"
slice = a.Transpose(a.Index(arr, 0, 1))
Debug.Print Join(slice, ", ")
'get second "row" (note double transpose)
slice = a.Transpose(a.Transpose(a.Index(arr, 2, 0)))
Debug.Print Join(slice, ", ")
End Sub
Index()
为您提供了一个二维数组 - (x,1)或(1,x) - Transpose()
会将其转换为一维数组。