Excel精英培训网

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

[已解决]自定义函数错误

[复制链接]
发表于 2021-11-23 10:36 | 显示全部楼层 |阅读模式
使用的时候提示#value


  1. Function mbif()

  2. Dim i, j, p

  3. i = Selection.Row

  4. j = Left(Selection.Offset(0, -4).Address(False, False), 1)

  5. p = Left(Selection.Offset(0, -2).Address(False, False), 1)

  6. Selection.Formula = "=if(" & j & i & "=" & p & i & ",12)"

  7. End Function

复制代码


最佳答案
2021-11-23 12:24

祝順心,南無阿彌陀佛!

新建 XLS 工作表.zip

11.01 KB, 下载次数: 5

发表于 2021-11-23 11:26 | 显示全部楼层
本帖最后由 林木水 于 2021-11-23 11:29 编辑

你想设置个什么公式呢,表达清楚要达到什么效果?
其中你这个代码就发现就有几个问题?
1.你设置一个公式mbif,为啥没有任何输出怎么会有值呢
2.在双""里面调用变量,需要一对&,而你" & j & i & "这种是错误的表达,应该" "& j &""& i &" ",双英文引号里面还要使用"& i &"这种格式
3.你使用offset函数,便宜-4列,如果活动区域选择的是E列左边,那就会报错
以下图片是一个正常自定义函数的几个重要部分,可以做参考
1637638095(1).jpg
回复

使用道具 举报

 楼主| 发表于 2021-11-23 11:43 | 显示全部楼层
林木水 发表于 2021-11-23 11:26
你想设置个什么公式呢,表达清楚要达到什么效果?
其中你这个代码就发现就有几个问题?
1.你设置一个公式 ...

选定一个单元格,对比选定单元格左边第四格和第二格的值,如果相同,返回12。主要是想在单元格内输入一个完整的公式,比如选定I12,那么就在I12输入 =if(E12=G12,12)
公式计算步骤显示结果是正确的,但是值显示是#value
我又更改了一下
  1. Function mbif()
  2. Selection.Formula = "=if(" & Selection.Offset(0, -4).Address(False, False) & "=" & Selection.Offset(0, -2).Address(False, False) & ",12)"
  3. End Function
复制代码






回复

使用道具 举报

 楼主| 发表于 2021-11-23 11:47 | 显示全部楼层
林木水 发表于 2021-11-23 11:26
你想设置个什么公式呢,表达清楚要达到什么效果?
其中你这个代码就发现就有几个问题?
1.你设置一个公式 ...

过程显示正确
20211123_114448.gif
回复

使用道具 举报

发表于 2021-11-23 12:20 | 显示全部楼层
Function mbif2(a, c)
    If a.Value = c.Value Then
        mbif2 = 12
    Else
        mbif2 = (1 = 0)
    End If
End Function

'E1 =mbif2(A1,C1)
'下拉右拉
回复

使用道具 举报

发表于 2021-11-23 12:24 | 显示全部楼层    本楼为最佳答案   

祝順心,南無阿彌陀佛!

demo.rar

10.99 KB, 下载次数: 8

回复

使用道具 举报

发表于 2021-11-23 13:54 | 显示全部楼层
要看你的目的是什么,
要是想往单元格里写入公式直接把function改成sub就行了,不需要自己定义个函数
要是就想要用function,直接判断写入结果就行了,无需再往单元格里写入if函数了

回复

使用道具 举报

 楼主| 发表于 2021-11-23 14:02 | 显示全部楼层
cutecpu 发表于 2021-11-23 12:24
祝順心,南無阿彌陀佛!

谢谢

评分

参与人数 1学分 +2 收起 理由
cutecpu + 2 不客气。祝顺心,南无阿弥陀佛!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 05:48 , Processed in 0.433932 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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