Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 9586|回复: 5

[已解决]请教VBA中如何实现Indirect功能?

[复制链接]
发表于 2012-4-24 09:16 | 显示全部楼层 |阅读模式
本帖最后由 令狐风 于 2012-4-24 09:21 编辑

写了一个函数AutoID(),返回的是单元格的地址代码,字符型,比如“A1”

现在我想用另外的函数读这个代码所表示的单元格的内容
比如SQRT(A1),就要写成SQRT(INDIRECT(AUTOID()))
我现在想把INDIRECT整合到VBA里,表格里就直接写SQRT(AUTOID())
请问怎么实现?

之前把函数返回值设成Range型,然后里面用Val()转换,好像不行

谢谢!

autoid.zip (15.1 KB, 下载次数: 52)
发表于 2012-4-24 09:25 | 显示全部楼层
回复

使用道具 举报

发表于 2012-4-24 09:36 | 显示全部楼层    本楼为最佳答案   
再写个类似的函数呗:


  1. Function AtID()
  2.     Application.Volatile
  3.     AtID = Range(AutoCell).Value
  4. End Function
复制代码

然后在EXCEL里输入公式就可以了:
=SQRT(AtID())

回复

使用道具 举报

 楼主| 发表于 2012-4-24 09:43 | 显示全部楼层
adders 发表于 2012-4-24 09:36
再写个类似的函数呗:

可以了,谢谢!      
回复

使用道具 举报

 楼主| 发表于 2012-4-24 09:56 | 显示全部楼层
adders 发表于 2012-4-24 09:36
再写个类似的函数呗:

另外请教,怎么能把selectionchange事件整合到函数中去,这样就可以直接保存成.xlam了,每次打开不同的文件都可以调用这个函数
回复

使用道具 举报

发表于 2017-1-20 10:14 | 显示全部楼层
大家好
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-24 16:42 , Processed in 0.288668 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表