将vba转换为公式

将vba转换为公式,vba,excel-formula,Vba,Excel Formula,我想要的是,我可以在excel公式中检查所有参数,如下面的代码。如果将代码放入循环中,代码运行时不会出错,但速度很慢,而且我有一个小数据集(大约1500条记录)。 与此类似的是一段代码,它将“formula.local”值放在预定义的表中(因此它会自动完成) 底线我真的需要这个代码运行得更快。。。如果有办法把它像一个“local.formula”,甚至改进代码本身运行更快,请让我知道。 如果这不清楚,请告诉我,我会尽量解释得更好。 谢谢 这可以通过单个excel公式完成,而无需VBA。下面的公式

我想要的是,我可以在excel公式中检查所有参数,如下面的代码。如果将代码放入循环中,代码运行时不会出错,但速度很慢,而且我有一个小数据集(大约1500条记录)。 与此类似的是一段代码,它将“formula.local”值放在预定义的表中(因此它会自动完成)

底线我真的需要这个代码运行得更快。。。如果有办法把它像一个“local.formula”,甚至改进代码本身运行更快,请让我知道。 如果这不清楚,请告诉我,我会尽量解释得更好。 谢谢


这可以通过单个excel公式完成,而无需VBA。下面的公式应该完成代码的功能

由于您没有提供示例数据片段,我将假设
comp、state、resp、obj
是来自同一行其他列的值。您可以将我公式中的这些值替换为相应的单元格引用,然后向下拖动

=IF(comp="AC",
    "AC",
    IF(state="idle",
          IF(resp>=obj,"idle miss","idle"),
          IF(resp>=obj,"ended miss","ended ok")
      )
    )

@DavidN说得对,这正是我需要它的方式…出于某种原因,我没有正确处理multiple if语句,我在谷歌上搜索了一些示例,但我只是变得更加混乱。一直以来正确的方法就是简单的方法。谢谢。

为什么不在公式中使用
IF
呢?另外,不需要使用
End IF
的方法,只要
IF……否则…
就像第二部分一样,你的代码是不完整的。我们无法仅就您的代码片段提供帮助。什么是
状态
响应
对象
?Nathan_Sav我的问题是我无法建立if公式来检查所有这些设置,我一直试图尽可能地简化。。字段status1-可以是“idle”或“processing”:::status2-可以是“missed”或“ok”::最后,我需要添加一列,使其值为“idle但missed”;idle ok;“结束错过”;“结束正常”
=IF(comp="AC",
    "AC",
    IF(state="idle",
          IF(resp>=obj,"idle miss","idle"),
          IF(resp>=obj,"ended miss","ended ok")
      )
    )