在vba中转换公式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在vba中转换公式相关的知识,希望对你有一定的参考价值。

请帮我采用以下公式来vba格式:

=MID(A2,FIND(CHAR(64),A2)+1,LEN(A2))

=IF(ISNUMBER(MATCH(B2,MTLS!B:B,0))=TRUE,"MTLS","NOT MTLS")

我的方法只适用于第一个公式:

With WS1.Range("AP2:AP" & LastRow)
    .Formula = "=MID(T2,FIND(CHAR(64),T2)+1,LEN(T2))"
        End With

第二个给出“语法错误”。

            With WS1.Range("AP2:AP" & LastRow)
               .Formula = "=IF(ISNUMBER(MATCH(B2,MTLS!B:B,0))=TRUE,"MTLS","NOT MTLS")"
                  End With
答案

转到VBEditor,显示立即窗口(如果您还没有看到,则按Ctrl + G)。在电子表格中选择带公式的单元格。输入立即:

?Selection.formula

你明白了如果你想在代码中使用它,你需要加倍“s。或者你可以立即输入:

?Replace(cl.Formula, """", """""")

您将获得带有双引号的公式。

以上是关于在vba中转换公式的主要内容,如果未能解决你的问题,请参考以下文章

在vba中转换公式

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

VBA 将公式转换为注释

当我使用相对范围时,VBA会自动将我的范围转换为绝对值

Excel VBA 删除公式并另存为 v2

利用VBA实现多个工作表指定单元格公式变为数值?