【发布时间】:2016-09-09 17:00:08
【问题描述】:
对于这么简单的问题,我深表歉意。我已经用谷歌搜索了这个,我不知道为什么这不起作用。我只想添加一个新行并将一个公式插入一个单元格。
我的代码是这样的
Private Sub CommandButton1_Click()
Dim lRow As Long
Dim lStr As String
Dim nRow As Long
Dim nStr As String
lRow = Cells(Rows.Count, 5).End(xlUp).Row
lStr = CStr(lRow)
nRow = lRow + 1
nStr = CStr(nRow)
Cells(nRow, 1).Value = Date
Cells(nRow, 2).Value = ""
Cells(nRow, 3).Value = 25
Cells(nRow, 4).Value = 53
Cells(nRow, 5).Select
ActiveCell.formula = "=IF(AND(C" & nRow & "=""""|D" & nRow & "="""")|""""|E" & lRow & "-C" & nRow & "+D" & nRow & ")"
End Sub
我尝试在公式中使用行的字符串值(使用 nStr 而不是 nRow 等)。
如果我删除开头的“=”符号并将其作为一个值,它会插入,如果我然后通过 excel 添加“=”它的评估很好,所以我知道公式的格式为字符串没问题。
但是为什么不插入公式呢?
我也试过用 r1c1 表示法。
有什么想法吗?
注意,值 25 和 53 是临时值。最终用户将手动将值输入到这些单元格中。
【问题讨论】:
-
将
|替换为逗号,。 vba 非常以美国英语为中心,公式必须以标准美国英语格式输入。 -
哇。那行得通。因此,如果我手动将 =IF(AND(C6=""|D6="")|""|E5-C6+D6) 输入到单元格中,它可以工作,但是通过 VB 我需要使用 =IF(AND(C6 ="",D6=""),"",E5-C6+D6)。谢谢你