VBA将单元格内容分配为公式而不是其结果

标签 vba excel

我尝试使用 VBA 为单元格分配公式,但每次运行代码时,它都会将结果分配给单元格,而不是公式本身,就像我使用 Excel 电子表格输入公式时一样。

有谁知道如何在单元格内使用宏显示公式而不是公式结果。

我问这个问题是因为我需要将此行插入到其他数据中的现有工作表中,然后运行另一个宏以保持更新,并且该宏取决于此公式。

我正在使用的代码

Cells(C, 9).Formula = Application.Index(Plan2.Range("B2:D10000"), _
Application.Match(Plan1.Range("B" & C) & Range("F" & C), Plan2.Range("A2:A10000"), 0), 3)

如您所见,该公式取决于其插入的行。

最佳答案

您的Formula最终会被简化为Application.Index返回的内容。除非返回的值有一个实际的公式字符串,否则您只会得到一个数字作为结果,并将其设置为 .Formula

如果要实际设置公式,则需要在 VBA 中创建一个表示要使用的公式的字符串。在这种情况下,该字符串将类似于:

Cells(C, 9).Formula = "=INDEX(Plan2!B2:D10000, MATCH(Plan1!B" & C & "..."

连接动态部分的位置。最终结果需要看起来像正常的公式。 Application.XXXApplication.WorksheetFunction.XXX 函数返回实际结果,而不是可以组合起来创建公式的片段。

关于VBA将单元格内容分配为公式而不是其结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30988059/

相关文章:

ms-access - 处理传递给 Access VBA 函数的错误值

vba - Excel UDF查找具有给定值的范围内的第一个和最后一个单元格-运行缓慢

asp.net-mvc - ASP.NET MVC : Downloading an excel file

vba - 删除打开的书

vba - 使用 FileSystemObject 列出出现错误的文件

vba - 通过excel vba发送邮件时在outlook中选择帐户

regex - 在两个静态字符串之间查找文本

vba - 列 x 中每个选定行更改值的 Excel VBA

vba - 用于多个条件的 Excel VBA 嵌套案例函数

excel - Power Query - 计算组函数中列中的非空白