VBA 将公式转换为注释

Posted

技术标签:

【中文标题】VBA 将公式转换为注释【英文标题】:VBA converting formula to comment 【发布时间】:2019-06-07 10:29:45 【问题描述】:

我有一个使用撇号“'”的公式,因此 VBA 将其读取为注释,有没有办法防止这种情况发生?

公式是

=SUMPRODUCT(SUMIF(INDIRECT("'"&$A$1:$A$10&"'!"&"$BI$1:$BI$1000"),C4,INDIRECT("'"&$A$1:$A$10&"'!"&"$ax$1:$ax$1000")))

一切正常

【问题讨论】:

在 VBA 中分配公式时,您需要将公式中的任何引号(不是撇号)加倍。例如activecell.formula = "=SUMPRODUCT(SUMIF(INDIRECT(""'""&$A$1:$A$10&""'!""&""$BI$1:$BI$1000""),C4,INDIRECT(""'""&$A$1:$A$10&""'!""&""$ax$1:$ax$1000"")))" VBA 中的公式以双引号 `"=SUMPROUCT(...)" 我不知道你在这里尝试什么,但撇号可以放在第一个字符串中。 @Fergus Myles 如果有帮助,请考虑批准我的回答,如果没有帮助,请考虑发表评论。谢谢! 【参考方案1】:

只需在 VBA 中使用 Chr(34) 并在工作簿公式中使用 CHAR(34) 代替 "。如果您是第一次看到它,使用起来会更容易,也不会那么难理解。

my_quoted_string = "this part is not in quotes " & Chr(34) & "while this part is" & Chr(34)

会回来

this part is not in quotes "while this part is"

对于撇号,请改用 Chr(39)CHAR(39)

【讨论】:

以上是关于VBA 将公式转换为注释的主要内容,如果未能解决你的问题,请参考以下文章

使用 VBA 将文件添加到 MS-Project 任务注释字段

excel或者vba,怎样将工作簿内所有橙色单元格公式转换为数值?

将单行注释转换为块注释

VBA注释临时

excel vba将公式转为数值

excel VBA 当有公式的单元格录入内容后,自动将内容粘贴为数值