VBA中,如何将文本对应到变量名,并调用该变量的值?

Functionrep(a1%,a2%,a3%,a4%,a5%)AsBooleanDimarr(1To5)AsVariantFori=1To5arr("a"&i)=1请问... Function rep(a1%, a2%, a3%, a4%, a5%)As Boolean
Dim arr(1 To 5) As Variant

For i = 1 To 5
arr("a" & i) = 1

请问此处如何将”a“ & i 的值作为数组下标传回arr中

即:函数中如果传入的a1=5,则i=1时,arr("a" & i)=arr(ai)=arr(5)
展开
 我来答
三心全乱
2013-06-17 · TA获得超过6158个赞
知道小有建树答主
回答量:518
采纳率:100%
帮助的人:218万
展开全部
字符串 对应到 变量名,有一种情况是可以的,就是定义一个类,类的属性就可以用字符串来调用,比如,textbox控件的属性enabled,可以用字符串“enabled”来调用,这个叫“反射”还是“映射”技术,记不清楚了,VB.net有这个功能,VB6好像也有,所以VBA应该有。有兴趣可以百度一下,或查阅MSDN for VB

就您提的这个问题,是没可能的。但是可以考虑把a1什么的也做成数组,数组是可以作参数传递的
x11xuu
2013-06-17 · TA获得超过597个赞
知道小有建树答主
回答量:570
采纳率:0%
帮助的人:520万
展开全部
用数组作参数就可以了,数组中有a1-a5这5个元素。你说的那种功能只可以在VBS或JS中才可以实现。
第一种(参数数组):
Function rep(ParamArray a())As Boolean
Dim arr(1 To 5) As Variant

For i = 1 To 5
arr(a(i-1)) = 1

函数调用方式:rep 5,4,3,2,1

第二种(数组作为参数):
Function rep(a())As Boolean
Dim arr(1 To 5) As Variant

For i = 1 To 5
arr(a(i)) = 1

调用方式:
dim b(1 to 5)
b(1)=5:b(2)=4:b(3)=3:b(4)=2:b(5)=1
rep b
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小刺猬001
2013-06-17 · TA获得超过729个赞
知道小有建树答主
回答量:1087
采纳率:73%
帮助的人:281万
展开全部

可以用string类型的变量存变量的地址,最后统一操作这些地址的单元格

例如:

将表三中成绩为空的单元格标为空。先存储所有单元格为空的地址,然后批量将此单元格的值改为“未考”

Dim rng as Range,rn$
On Error Resume Next
For Each rng In sheet3.Range("b2:d10")
     If rng="" Then rn=rn & rng.Address & ","
Next
Range(Left(rn,Len(rn)-1))="未考"  '去掉地址字符串最后一个,
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Excel开发
2013-06-17 · TA获得超过2914个赞
知道大有可为答主
回答量:1989
采纳率:53%
帮助的人:1015万
展开全部
不行的,变量就是变量,不能用字符联接成变量名
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式