VBA代码中的IF和公式

时间:2018-03-31 04:37:12

标签: excel vba excel-vba excel-formula

最近,你们通过在数据透视表旁边插入动态公式并自动填充来帮助我解决数据透视表的循环问题。

'formula
 frml = "=if(" & myrange.Address(0, 0) & ">0.3%," & myrange2.Address(0, 0) & ","""")"

'where i want the formula to go
pt.ColumnRange.End(xlToRight).Offset(1, 0).End(xlToLeft).Offset(1, 1).formula = frml

ActiveSheet.range("P7:P36588").FillDown

我尝试通过添加

来更新此公式
"=if(and("

然后还添加另一个范围。问题是额外的(永远不会出现。我还尝试添加"("作为自己的部分,但接下来的部分('公式所在的位置)停止工作,这对我来说毫无意义。

有人可以帮助我将此公式转换为ifand语句,并解释为什么公式应该去的地方'所有突然停止工作的部分?

修改

总的来说,新增加的内容如下:

"if(and(" & myrange.address(0,0) & ">0.3%," & myrange3.address(0,0) & ">$100," & myrange2.address(0,0) & ","""")

通过数据透视表

在相应的单元格中输出此公式
=if(and(c3>.3%,d3>$100),a3,""

现在的问题是将and部分添加到d3的公式中。如果这两个陈述有效,那么它应该带出a3,否则它将不返回任何内容。

2 个答案:

答案 0 :(得分:2)

您没有使用)关闭AND子句。

'formula
frml = "=if(and(" & myrange.address(0,0) & ">0.3%, " & myrange3.address(0,0) & ">$100), " & myrange2.address(0,0) & ", text(,))

text(,)可以替代引用字符串公式中的""""

答案 1 :(得分:2)

几点说明:

  1. @Jeeped已经回答了您的错误原因 - 您需要在)添加右括号AND
  2. 我喜欢使用Chr(34)在公式字符串中记下"
  3. 我喜欢避免比较单元格内的格式,只考虑值。因此,我喜欢使用myrange.address(0,0) & ">0.3%"而不是myrange.address(0,0) & ">0.003"
  4. <强>代码

    frml = "=IF(AND(" & myrange.Address(0, 0) & ">0.003," & myrange3.Address(0, 0) & ">100)," & myrange2.Address(0, 0) & "," & Chr(34) & Chr(34) & ")"