【发布时间】:2018-10-07 14:47:15
【问题描述】:
您好,我正在寻找从 excel 函数创建 vba 函数。 excel函数可以正常工作,但问题是函数很长并且达到了“if”的最大数量。
这是excel函数的一部分:
=IF(E49>=E50+$A$1;1;IF(E49<=E50-$A$1;-1;IF(E48>=E50+$A$1;1;IF(E48<=E50-$A$1;-1;IF(E47>=E50+$A$1;1;IF(E47<=E50-$A$1;-1;IF(E46>=E50+$A$1;1;IF(E46<=E50-$A$1;-1;0)))))))
我需要一个简单的 if 语句来判断单元格 E49 是否 >= E50+$A$1 或 = E50+$单元格 E50-$A$1 的 A$1 或
我需要启动一个 if 循环,该循环在到达语句时结束。 该示例是 excel 代码的一小部分,但它可能很长,因为如果在靠近 E50 的单元格上未达到 if 语句,则可以完成到单元格 E3 或 E1 创建一个很长的代码。我需要通过创建一个循环来删除所有这些额外的代码。
希望我已经解释清楚了。
例如
感谢您的帮助。
【问题讨论】:
-
“我希望我已经解释清楚了”。对不起,但我不认为你有。以
...结束对条件的描述并不是一个好兆头。它假设我们了解这种模式,对于没有像您一样沉浸在您的问题细节中的人,这不是一个安全的假设。 -
您的描述存在另一个问题,
E49 is >= or <= of cell E50+$A$1肯定总是正确,因为给定任意两个数字x和y,x >= y或x <= y。 -
IF(E49>=E50+$A$1;1;IF(E49= 加 A1 或
-
最好解释一下您要对列
E执行的操作。所有这些If语句应该做什么?您只(部分)解释了他们应该检查的条件。编写一个在一系列单元格上循环的 VBA 循环很容易,检查每个单元格的某些条件,但是您所写的内容中没有任何内容清楚地说明该循环除了检查某些条件之外应该做什么。将单个值放入单元格中?将 50 个值放入 50 个单元格中?什么价值观?这些价值观应该去哪里? -
要详细说明@JohnColeman 最后的评论:有时对于一个复杂的问题,重新考虑如何尝试解决问题可能会更好,而不是挂在一个复杂解决方案的实现上可能是也可能不是最好的方法。
标签: excel vba loops if-statement