VBA 一个数组传递到一个函数中,返回值为什么不能改变?

用VBA的时候我有一个数组,想传递到一个函数中,然后把顺序调过头来,结果回到调用的过程中,发现数组还是没有改变,求大神指点,代码如下:Subtest()DimiAsLon... 用VBA的时候我有一个数组,想传递到一个函数中,然后把顺序调过头来,结果回到调用的过程中,发现数组还是没有改变,求大神指点,代码如下:
Sub test()
Dim i As Long
Dim arr() As Double
For i = 0 To 100
ReDim Preserve arr(0 To i)
arr(i) = i
Next i
dt (arr)
Stop
End Sub

Function dt(arr)
Dim i As Long
Dim j As Long
j = UBound(arr)
Dim brr() As Double
ReDim brr(0 To j) As Double
For i = LBound(arr) To UBound(arr) Step 1
brr(i) = arr(j)
j = j - 1
Next i
Stop
For i = LBound(arr) To UBound(arr) Step 1
arr(i) = brr(i)
Next i
Stop
End Function
展开
 我来答
云南新华电脑学校
2020-11-26 · 百度认证:云南新华电脑职业培训学校官方账号
云南新华电脑学校
云南新华电脑学校是经云南省教育厅批准成立的省(部)级重点计算机专业学校,采用三元化管理模式,教学设备先进,师资雄厚学生毕业即就业,学院引进了电商企业入驻,创建心为电商创业园区,实现在校即创业
向TA提问
展开全部
您好,你的问题,我之前好像也遇到过,以下是我原来的解决思路和方法,希望能帮助到你,若有错误,还望见谅!将Dim ClArray(1 To 100) As String
改为:Dim ClArray() As String
想要将一个数组赋值给另一个数组,确定在左侧的是大小可以调节的数组,且类型匹配。非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!
追问
大哥,我是想将一个数组掉个头比如原来是{0,1,2...100},现在掉头过后是{100,99,98...0}。我的问题不是数组给数组赋值,也不是动态数组的问题,而是用一个子函数掉头之后回到调用的过程中,数组没有变化。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
arongustc
科技发烧友

2020-11-26 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:5835万
展开全部
说明他是传值调用,不是传引用调用,把函数定义
Function dt(arr)
改为
sub dt(ByRef arr )
看看,注意这里的ByRef关键字

注意:你这个函数没有返回值,应该用sub而不是function
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式