0

我可以在工作表级别使用它...

=SUBSTITUTE(PROPER(SUBSTITUTE(A1,"'", "qx")), "qx", "'")

我可以在模块级别使用它..

ActiveCell.Value = Application.WorksheetFunction.Proper(ActiveCell.Value)

但我似乎无法让它模块级别上工作......

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

我收到“未定义子或功能”错误。

我已经为此苦苦挣扎了很长时间,以至于我忘记了我尝试过的所有不同变体。我真的可以用一些新鲜的眼光和一些函数嵌套的诀窍。这真让我抓狂。

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

4

1 回答 1

2

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

ActiveCell.Value = Application.WorksheetFunction.Substitute(Application.WorksheetFunction.Proper(Application.WorksheetFunction.Substitute(ActiveCell.Value, "'", "qx")), "qx", "'")
于 2013-10-31T22:44:23.570 回答