网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月24日漏签0天
excel吧 关注:281,512贴子:1,551,527
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 12回复贴,共1页
<<返回excel吧
>0< 加载中...

VBA自定义函数的返回值能是数组吗?

  • 只看楼主
  • 收藏

  • 回复
  • d_agu
  • E见钟情
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
假如我定义个函数:
public function test(byval m as integer) as integer
能返回整形数组吗?
不行的话,应该怎么声明函数?


  • QQ2545401291
  • E见钟情
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
public function test(byval m as integer) as integer() '这儿加()
dim arr1(2) as integer '定义数组
arr1(1)=10*m
arr1(2)=200
test=arr1 '返回数组
end function
sub test2()
dim arr(2) as integer '定义数组,接收test传回的值
arr=test(10) '调用test,返回arr(1)=100,arr(2)=200
' ……
end sub


2025-08-24 03:29:21
广告
不感兴趣
开通SVIP免广告
  • baifandu2013
  • 博采众E
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我用过程返回过数组内容,函数没试过。如果用过程,大致格式如下:
Function fan_GetList(fan_x1 As String, fan_x2 As String, fan_x3() As String) As Integer
上述虽然是个函数,但第三个参数是数组,传递参数时,前两个是参数,第三个数组并没有内容,是个空的数组,由这个过程或者函数生成具体内容并返回调用程序,函数本身也可以返回一个integer的结果,我这里是返回数组的数量。我是举个例子,实际上返回数组的数量是多余,因为UBound也可以得到数组数量的。


  • zipall
  • 吧主
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Function arr(x As Variant) As Variant
Dim u As Integer
Dim i As Integer
Dim t()
u = UBound(x)
ReDim t(u)
For i = 0 To u
t(i) = x(i) * 2
Next
arr = t
End Function
Sub test()
Dim a()
a = Array(1, 2, 3)
MsgBox a(2)
MsgBox arr(a)(2)
End Sub


  • Arthur叔
  • 日新月E
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Sub AAATest()
Dim Arr() As Long
Dim N As Long
Arr = LoadNumbers(Low:=101, High:=110)
If IsArrayAllocated(Arr:=Arr) = True Then
For N = LBound(Arr) To UBound(Arr)
Debug.Print Arr(N)
Next N
Else
''''''''''''''''''''''''''''''''''''
' Code in case Arr is not allocated.
''''''''''''''''''''''''''''''''''''
End If
End Sub
Function LoadNumbers(Low As Long, High As Long) As Long()
'''''''''''''''''''''''''''''''''''''''
' Returns an array of Longs, containing
' the numbers from Low to High. The
' number of elements in the returned
' array will vary depending on the
' values of Low and High.
''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''
' Declare ResultArray as a dynamic array
' to be resized based on the values of
' Low and High.
'''''''''''''''''''''''''''''''''''''''''
Dim ResultArray() As Long
Dim Ndx As Long
Dim Val As Long
'''''''''''''''''''''''''''''''''''''''''
' Ensure Low <= High
'''''''''''''''''''''''''''''''''''''''''
If Low > High Then
Exit Function
End If
'''''''''''''''''''''''''''''''''''''''''
' Resize the array
'''''''''''''''''''''''''''''''''''''''''
ReDim ResultArray(1 To (High - Low + 1))
''''''''''''''''''''''''''''''''''''''''
' Fill the array with values.
''''''''''''''''''''''''''''''''''''''''
Val = Low
For Ndx = LBound(ResultArray) To UBound(ResultArray)
ResultArray(Ndx) = Val
Val = Val + 1
Next Ndx
''''''''''''''''''''''''''''''''''''''''
' Return the array.
''''''''''''''''''''''''''''''''''''''''
LoadNumbers = ResultArray()
End Function


  • 不要空zxd
  • E见钟情
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
都是答非所问,数组是通过程形成的,数组下标示知的,怎么在工作表上返回整个数组?


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 12回复贴,共1页
<<返回excel吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示