================================================================== Dim a() as integer Dim N as variant N=a Change(N)Private Function Change(M as Variant) ... End Function================================================= Sub (txt As Object) Dim L as long l=txt.count load txt(l) txt(l).left=100 txt(l).top=100 txt(1).visible=true End Sub ================================================================
我写的这个函数你肯定喜欢:它既能传递数组给函数,又能返回一个数组给调用者。Private Sub Command1_Click() Dim k1(10) As Integer Dim k2() As Integer For i = 0 To 9 k1(i) = i + 1 Next k2 = DoubleNum(k1) For i = 0 To 9 Print k1(i) & "的1倍=" & k2(i) Next End SubPrivate Function DoubleNum(Num() As Integer) As Integer() Dim oK2() As Integer ReDim oK2(UBound(Num)) For i = 0 To UBound(Num) - 1 oK2(i) = 2 * Num(i) Next DoubleNum = oK2 End Function
同意 chsl918(二雷) 还是来个全局吧
偷懒的办法,使用一个隐含单label数组(可动态生成一个)。
Private Function array(i As any) As any() 'i是你要传入数组的参数,数量不限,对返回值没有影响 dim temparr(n) as any 'set temparr temparr(1)=123 temparr(2)=321 ...... 'your code array=temparr end functionprivate main sub dim return() as any return=array(i)endsub ' any是你想要返回的数组 的类型。 最重要的是最后一个括号 注意主函数接收数组一定为动态数组,且类型要和函数返回值一致
不好意思,刚刚看错了,我把你的问题想复杂了 :) 试试下面的代码 Option ExplicitPrivate Sub Form_Load() Dim a() As Integer 'c (1) Dim b(2) As Integer b(0) = 2 b(1) = 9 a = c(b) Print a(2)End SubPrivate Function c(i() As Integer) As Integer() Dim b(10) As Integerb(1) = i(0) b(2) = i(1) c = b End Function
Dim a() as integer
Dim N as variant
N=a
Change(N)Private Function Change(M as Variant)
...
End Function=================================================
Sub (txt As Object)
Dim L as long
l=txt.count
load txt(l)
txt(l).left=100
txt(l).top=100
txt(1).visible=true
End Sub
================================================================
把 数组 内容用 某个符号 连接成 字符串 传入。
再 用 split函数 分开它。
2."sonicdater"的方法
Dim k1(10) As Integer
Dim k2() As Integer
For i = 0 To 9
k1(i) = i + 1
Next
k2 = DoubleNum(k1)
For i = 0 To 9
Print k1(i) & "的1倍=" & k2(i)
Next
End SubPrivate Function DoubleNum(Num() As Integer) As Integer()
Dim oK2() As Integer
ReDim oK2(UBound(Num))
For i = 0 To UBound(Num) - 1
oK2(i) = 2 * Num(i)
Next
DoubleNum = oK2
End Function
还是来个全局吧
dim temparr(n) as any
'set temparr
temparr(1)=123
temparr(2)=321
......
'your code
array=temparr
end functionprivate main sub
dim return() as any
return=array(i)endsub
' any是你想要返回的数组
的类型。
最重要的是最后一个括号
注意主函数接收数组一定为动态数组,且类型要和函数返回值一致
试试下面的代码
Option ExplicitPrivate Sub Form_Load()
Dim a() As Integer
'c (1)
Dim b(2) As Integer
b(0) = 2
b(1) = 9
a = c(b)
Print a(2)End SubPrivate Function c(i() As Integer) As Integer()
Dim b(10) As Integerb(1) = i(0)
b(2) = i(1)
c = b
End Function
如何用?
var as variant