Excel自定义函数,这错在哪?

Function a(abc)
If Right(abc, 1) <> Chr(34) And Left(abc, 1) <> Chr(34) Then
abc = Chr(34) & abc & Chr(34)
End If
a = abc
End Function
单元格输入:=a(456) 显示 "456"
单元格输入:=a(asdf) 显示#VALUE! 进入调试,可以查到abc=Error 2029
这是为何?谢谢!

第1个回答  2017-04-24
Excel2010与2013创建自定义函数的方法一样,以2013为例说明方法如下:1.按下Alt+F11,打开VBA编辑界面,在左侧点击右键,插入模块:2.在模块中,输入自定义函数代码;本例中的自定义函数是求第一个参数的平方与第二个参数的立方之和:3.返回Excel,就可以使用自定义函数了,注意自定义函数的参数:4.跟正常函数一样,点下回车就可以得到函数计算结果:
第2个回答  2017-04-24

看不出有什么问题呀

追问

我也试了,在另外一个单元格输入asdf,然后=a(A2),能出结果,但是直接输入不行。在单元格中直接输入=a(asdf),就会出错了

追答

直接引用文本字符串应给所引用的文本字符串打上引号:
=a("asdf")

追问

这没有不加引号的办法吗?其实我以前就是用的引号,觉得太麻烦,我就是想试试有没有办法不加引号。谢谢啦!

追答

平时习惯了公式的规范格式,也就没怎么在意这样的问题了。

追问

谢谢啦!

相似回答