vba无法访问以变量形式存在的range?
发布网友
发布时间:2023-07-14 07:19
我来回答
共3个回答
热心网友
时间:2024-11-03 02:04
是你这个自定义函数出问题了吧?
本来就是错的啊。
你一个自定义函数,得到的必须是一个值。写在单元格里必须是值啊!
而你用set ,set后边跟的必然是个对象。 你把一个对象赋值给一个值,不报错才怪了呢。
把set去掉就可以了。
而且,单元格的前边不能写workbooks(文件名).sheet(1),这是不对的。
是function里边,括号里边的值是变量,需要外部输入的。不能在代码中直接指定位置。如果你希望得到另一个工作簿中的某个工作表中的某个单元格的值。而在当前表中又想通过选择来对应数据源的位置,那么可以使用单元格.address求出对应单元格的地址,然后再用workbooks(文件名).工作表名.range(单元格.address) 这样的引用。
记住不能用 set 函数名称= xxx 这样的语句
一定 是 函数名称= 某值 这样的语句。
如果还有问题,欢迎继续追问或者私信。
欢迎关注,点赞。如果解决了你的疑问,欢迎采纳。
热心网友
时间:2024-11-03 02:05
你的workbook要打开才能读取
添加代码
set wk=workbook.open(文件名)
获取=wk.sheets(1).单元格
wk.close追问这个错误是在已打开它的情况下出现的,我把该打开的全打开了才运行的代码,如果是没打开,那它会报其它错
所以是怎么回事?
热心网友
时间:2024-11-03 02:05
Function 获取(文件名 As String, 单元格 As Range)
获取=Workbooks(文件名).Sheets(1).单元格.Value
End Function