Excel精英培训网

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

[已解决]请教一个菜鸟问题,这样引用单元格为什么不可以?

[复制链接]
发表于 2010-10-12 18:35 | 显示全部楼层 |阅读模式

Function ixangden(obja As Range, objb As Range)
    Dim ianum As Double, ibnum As Double
    ianum = obja.Value
    ibnum = objb.Value
    If ianum > ibnum Then
    ianum = ianum + 1
    ibnum = ibnum - 1
    ElseIf ianum < ibnum Then
    ianum = ianum - 1
    ibnum = ibnum + 1
    Else
    ianum = ianum + 1
    ibnum = ibnum - 1
    End If
    obja.Offset(-1, 0).Value = ianum
    objb.Offset(-1, 0).Value = ibnum
    ixangden = ianum + ibnum
    objb.Offset(-2, 0).Value = ixangden
End Function

在学习中,看到if语句想用这个UDF来试一下,可是编写完后在工作表是用这个UDF(即在一个单元格内输入=ixangden(g11,i11))时返回#VALUE!,可是点击错误中显示计算步骤时又能正确得到值。

请大师们给咱看看怎么才在在UDF中正确引用单元格,谢谢!

还有一个问题,请帮我一起解决了:如何自编一个函数,使多个单元格区域为参数。比如我想一次性对类似于C3:C47及F3:F33这样的单元格求一个综合指数。

最佳答案
2010-10-12 18:45

自定义函数只能处理当前单元格的值,而不能更改其它单元格的值

你用了offset更改的是其它单元格的值,所以会出错。

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2010-10-12 18:45 | 显示全部楼层    本楼为最佳答案   

自定义函数只能处理当前单元格的值,而不能更改其它单元格的值

你用了offset更改的是其它单元格的值,所以会出错。

回复

使用道具 举报

发表于 2010-10-12 18:47 | 显示全部楼层
回复

使用道具 举报

发表于 2010-10-12 19:07 | 显示全部楼层

end sub 上边要有ixangden=多少 用来返回结果的值
回复

使用道具 举报

 楼主| 发表于 2010-10-12 19:42 | 显示全部楼层

回复:(acbs)自定义函数只能处理当前单元格的值,而...

把那些代码删除了也不行,现在返回#NAme

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-15 13:23 , Processed in 0.187973 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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