vba - VBA代码中的IF AND公式

标签 vba excel 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。如果这 2 个语句有效,那么它应该带出 a3,否则它不会返回任何内容。

最佳答案

几点注意事项:

  • @Jeeped 已经回答了您的错误原因 - 您需要添加右括号 )给您的AND .
  • 我喜欢用Chr(34)写下"在公式字符串中。
  • 我喜欢避免比较单元格内的格式,只比较值。所以而不是myrange.address(0,0) & ">0.3%"我喜欢使用 myrange.address(0,0) & ">0.003" .

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

    关于vba - VBA代码中的IF AND公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49584295/

    相关文章:

    vba - 调用 MS Access 查询,该查询从 Delphi ADO 组件调用模块中的 VBA 函数

    excel - 在 VBA Excel 2003 中获取 "My Documents"文件夹的独立于语言的方法

    excel变量表号等于列号引用

    VBA查找字符串的字体颜色

    VBA循环遍历所有图表中的所有系列

    vba - 如何将 bool 值从 UserForm 传递到 Sub?

    excel - Excel 中的完整超链接路径

    excel - 如何跟踪谁使用我的 Excel 电子表格?

    Excel:什么决定公式中的计算顺序?

    excel - 数据验证指的是表中的列较少的单元格