VBA将单元格内容指定为公式而非结果

Vin*_*era 2 excel vba excel-vba

我正在尝试使用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)
Run Code Online (Sandbox Code Playgroud)

如您所见,此公式取决于其插入的行.

Byr*_*all 5

Formula最终会被归结为任何归还的东西Application.Index.除非返回的值有一个实际的公式字符串,否则你只需得到一个数字作为结果,并将其设置为 .Formula.

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

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

你在动态部分连接的地方.最终结果需要看起来像普通公式.的Application.XXXApplication.WorksheetFunction.XXX函数返回实际结果,而不是可以被组合以创建公式件.