在单元格中输入公式会产生应用程序定义或对象定义的错误
Entering formula in a cell generates Application-defined or object-defined error
我在网上搜索了解决方案并重新编码 VBA 多次。
我最终手动填充了一个字符串(以位为单位,因为我总是错误地计算引号):
PKHNTString = "=SUBSTITUTE(UPPER(AF:AF&AD:AD&AE:AE);"
PKHNTString = PKHNTString + """ "";"""
PKHNTString = PKHNTString + """)"
这会产生一个包含以下内容的字符串:
=SUBSTITUTE(UPPER(AF:AF&AD:AD&AE:AE);" ";"")
可以在本地变量中找到:
: PKHNTString : "=SUBSTITUTE(UPPER(AF:AF&AD:AD&AE:AE);" ";"")" : String
如果我将这个确切的值粘贴到单元格中,它将起作用(删除空格并将所有内容转换为大写),但是当我通过 VBA 将此公式放入单元格中时,如下所示:
NWS.Cells(j, 48).Formula = PKHNTString
我收到错误:运行-时间错误“1004”应用程序定义或对象定义的错误。
如有任何帮助,我们将不胜感激!
TIA,
威廉
您已指定 semi-colon (;) 作为公式中的参数分隔符。通过 VBA,无论当前的区域设置如何,您始终需要为此使用逗号。然而,.FormulaLocal 确实需要列表分隔符的本地化版本。
因为区域设置在 PC 之间可能会有所不同,所以最好使用 .Formula 成员而不是 .FormulaLocal - 否则你必须使用代码来确定要使用的正确列表分隔符(可以使用一些 API calle,但它比仅使用 .Formula 更有效。
因此,要么使用 .FormulaLocal,要么替换“;”带“,”(推荐)。
您必须转义 PKHNTString 中的每个内部 "(引号)。目前,VBA 正在尝试将 =SUBSTITUTE(UPPER(AF:AF&AD:AD&AE:AE);
作为公式插入并且不知道 ;"")
是什么. 在单元格中插入公式时,您的 PKHNTString
必须是:
"=SUBSTITUTE(UPPER(AF:AF&AD:AD&AE:AE);"" "";"""")"
通过 VBA...
输入带有 " 的公式并不容易
我在网上搜索了解决方案并重新编码 VBA 多次。 我最终手动填充了一个字符串(以位为单位,因为我总是错误地计算引号):
PKHNTString = "=SUBSTITUTE(UPPER(AF:AF&AD:AD&AE:AE);"
PKHNTString = PKHNTString + """ "";"""
PKHNTString = PKHNTString + """)"
这会产生一个包含以下内容的字符串: =SUBSTITUTE(UPPER(AF:AF&AD:AD&AE:AE);" ";"") 可以在本地变量中找到: : PKHNTString : "=SUBSTITUTE(UPPER(AF:AF&AD:AD&AE:AE);" ";"")" : String
如果我将这个确切的值粘贴到单元格中,它将起作用(删除空格并将所有内容转换为大写),但是当我通过 VBA 将此公式放入单元格中时,如下所示:
NWS.Cells(j, 48).Formula = PKHNTString
我收到错误:运行-时间错误“1004”应用程序定义或对象定义的错误。
如有任何帮助,我们将不胜感激!
TIA, 威廉
您已指定 semi-colon (;) 作为公式中的参数分隔符。通过 VBA,无论当前的区域设置如何,您始终需要为此使用逗号。然而,.FormulaLocal 确实需要列表分隔符的本地化版本。
因为区域设置在 PC 之间可能会有所不同,所以最好使用 .Formula 成员而不是 .FormulaLocal - 否则你必须使用代码来确定要使用的正确列表分隔符(可以使用一些 API calle,但它比仅使用 .Formula 更有效。
因此,要么使用 .FormulaLocal,要么替换“;”带“,”(推荐)。
您必须转义 PKHNTString 中的每个内部 "(引号)。目前,VBA 正在尝试将 =SUBSTITUTE(UPPER(AF:AF&AD:AD&AE:AE);
作为公式插入并且不知道 ;"")
是什么. 在单元格中插入公式时,您的 PKHNTString
必须是:
"=SUBSTITUTE(UPPER(AF:AF&AD:AD&AE:AE);"" "";"""")"
通过 VBA...
输入带有 " 的公式并不容易