FormulaR1C1的读数为False

我在Excel中有一个用户窗体,它将数据添加到表的最后一行。 在最后一行的第14列中,我希望excel显示公式,但是它总是读取false。 如果我拿出了拉斯特罗,作为一个单独的实体,那么这完美的作品。

在这个例子中,应该给出26.5 * 2的答案,当然这个答案应该是53,而不是因为RC [-1]是空的。

Private Sub CommandButton1_Click() Dim iRow As Long Dim ws As Worksheet Set ws = Worksheets("Primary Data") iRow = ws.Cells.Find(What:="*", Searchorder:=xlRows, _ SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1 ws.Cells(iRow, 14).Value = FormulaR1C1 = "=IF(RC[-1]="""",RC[-2]*RC[-3],RC[-2]*RC[-3]*(1-RC[-1]))" End Sub 

任何人都可以请帮我解决这个难题。

不要做ws.Cells(iRow, 14).Value = FormulaR1C1因为你没有设置一个值,使用ws.Cells(iRow, 14).FormulaR1C1 =

 Private Sub CommandButton1_Click() Dim iRow As Long Dim ws As Worksheet Set ws = Worksheets("Primary Data") iRow = ws.Cells.Find(What:="*", Searchorder:=xlRows, _ SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1 ws.Cells(iRow, 14).FormulaR1C1 = "=IF(RC[-1]="""",RC[-2]*RC[-3],RC[-2]*RC[-3]*(1-RC[-1]))" End Sub 

另一个选项,在运行这个代码之前,如果列“K”,“L”和“M”中的值已经存在,那么这个选项是可行的:

 Dim Rng As Range Set Rng = ws.Cells(iRow, 14) Rng.Value = IIf(Rng.Offset(, -1) = "", _ Rng.Offset(, -2) * Rng.Offset(, -3), _ Rng.Offset(, -2) * Rng.Offset(, -3) * (1 - Rng.Offset(, -1)))