Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA-结合使用替代函数和适当函数_Vba_Excel - Fatal编程技术网

VBA-结合使用替代函数和适当函数

VBA-结合使用替代函数和适当函数,vba,excel,Vba,Excel,我可以在床单上使用这个 =SUBSTITUTE(PROPER(SUBSTITUTE(A1,"'", "qx")), "qx", "'") 我可以在模块级上使用它 ActiveCell.Value = Application.WorksheetFunction.Proper(ActiveCell.Value) 但我似乎无法在模块级上实现这一点 ActiveCell.Value = Application.WorksheetFunction.Substitute(Proper(Substitut

我可以在床单上使用这个

=SUBSTITUTE(PROPER(SUBSTITUTE(A1,"'", "qx")), "qx", "'")
我可以在模块级上使用它

ActiveCell.Value = Application.WorksheetFunction.Proper(ActiveCell.Value)
但我似乎无法在模块级上实现这一点

ActiveCell.Value = Application.WorksheetFunction.Substitute(Proper(Substitute(ActiveCell.Value, "'", "qx")), "qx", "'")
我收到一个“未定义子函数或函数”错误

我已经挣扎了这么长时间,以至于我忘记了我尝试过的所有不同的变体。 我真的需要一些新鲜的眼睛和一些功能嵌套的诀窍。这让我快发疯了


(顺便说一句,这是为了将现有单元格值更改为正确的大小写,以及修复正确函数将撇号后面的任何字母大写的怪癖)

您必须在每次调用时引用Application.WorksheetFunction对象,因为它不知道其他方法

ActiveCell.Value = Application.WorksheetFunction.Substitute(Application.WorksheetFunction.Proper(Application.WorksheetFunction.Substitute(ActiveCell.Value, "'", "qx")), "qx", "'")

property
Substitute
也是工作表函数。。。你可以用VBA
Replace()
代替
replacement()
,这就是上面的“关于”…我不是加拿大人!谢谢你,Sorceri。这很有启发性!我从未想到有必要将WorksheetFunction应用于内部嵌套函数,但它完美地解释了我收到的错误类型。非常感谢这宝贵的一课。