Vb里如何表示变量的变量?

ruihuo 2008-10-08 04:22:08
比如
getA="Z"
B="getA"
如何通过B取到 "Z" 这个值?


Asp中可以用
C=Eval(B)

VB中怎么样实现?
...全文
193 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
熊孩子开学喽 2008-10-11
  • 打赏
  • 举报
回复
逻辑上来说,完全可以避免这种"引用"的方法
比如你那个函数,Function GetAd(WhereAD)
按照你的做法,实际是在函数的执行过程中改变了传入的那个参数.
比如你调用的时候是:GetAd "ABC"
执行之后再去读变量"WEB_ABC"的值等等.
但是实际上是可以通过条件判断决定调用哪个参数,到底是调用ABC还是WEB_ABC就可以了.
并且更高效明确.


----
BTW, 老实说,我还真的没遇到过在何种情况下,非要通过这种费劲的方法来写代码.
我能想像出来的唯一情况就是写一个类似VB的解释执行IDE才可能用到这种方法.
fvflove 2008-10-08
  • 打赏
  • 举报
回复
getad 在那里面申明的,就用那个代替 Me
SYSSZ 2008-10-08
  • 打赏
  • 举报
回复
改成执行程序窗体名,如Form1
ruihuo 2008-10-08
  • 打赏
  • 举报
回复
谢谢各位,按3楼的做法果然可以获得
但是,我是在写VB封装ASP为DLL
ASP的原形为

Function GetAd(WhereAD)
StrAd=""
StrAdTemp=""
RootAd=eval(WhereAD)
UserAd=eval("Web_"&WhereAD)
If RootAd="" Then
StrAdTemp=Lcase(UserAd)
WhereAd="User"
Else
StrAdTemp=Lcase(RootAd)
WhereAd="Root"
End IF

用封装VB封装该怎么写这个函数?
ASP2DLL写成了
Private Function GetAd(WhereAD)

3271 RootAd = CallByName(Me, WhereAD, VbGet)
3272 UserAd = CallByName(Me, "Web_" & WhereAD, VbGet)
GetAd = StrAd
Exit Function

这里不能用ME吧,
不然显示
Error 对象不支持该属性或方法 LINE3271 Routine : ruihuo_index.getad
fvflove 2008-10-08
  • 打赏
  • 举报
回复
如果你的
getA 设置为公共变量就有办法.

如:

Option Explicit
Public getA As String '公共的变量
Private B As String

Private Sub Command1_Click()
MsgBox CallByName(Me, B, VbGet)
End Sub

Private Sub Form_Load()
getA = "Z"
B = "getA"
End Sub
ZengHD 2008-10-08
  • 打赏
  • 举报
回复
VB6里有一个ScriptControl控件可以调用Eval方法
东方之珠 2008-10-08
  • 打赏
  • 举报
回复
用CallByName函数即可.

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧