为什么我的 excel vba if/or 语句不能正常工作?
Why doesn't my excel vba if/or statement work correctly?
我正在比较 2 个数据表中的数字值,并将相关数据从两个数据表中放入它们自己的数组中。我需要找到 运行 其他分析步骤的匹配值。
For i = Lbound(Array1) to UBound(Array1)
For j = LBound(Array2) to UBound(Array2)
If (criteria for Array2) then
variable = 11111
Else
variable = 22222
End if
If variable = Array1(i,1) Or variable = Array1(i,2) or variable = Array1(i,3) then
more steps
Else
more steps
End if
next j
next i
第一个 if 语句正确设置了变量,但变量不符合任何条件。它不会像它应该的那样去其他地方。现在我只知道这些是因为我一步一步地浏览了代码。如果我只是 F5 和 运行 东西,“Excel 没有响应”。我不知道挂断它是什么。我所有的变量都已声明并分配了一个类型,我没有遗漏任何结束语句。而且我不知道我做错了什么。
我需要在我的代码中检查什么?
编辑
抱歉,在这种情况下,我不允许在此处上传任何代码。它与工作相关,NDA 之类的东西。因此伪代码。我需要展示的东西不会有什么大不了的(至少我认为不会),但我不会冒险。
抱歉。
事实证明,解决方案与命名不当的数组(不是我)和一个简单的拼写错误(绝对是我)有关。我敢肯定,如果我被允许 post 实际代码,那么对于 Stack Overflow 的好公民来说,这将是一个简单的解决方案。
对于它的价值,我认为在这种情况下我不能这样做是愚蠢的。感谢@ScottCraner 和@SuperSymmertry 尝试提供帮助,即使没有太多进展。
太好了,我仍然对 Val 感到好奇。如果您有时间,我将不胜感激。来自真人的任何东西都比 Microsoft 文档更好。
我正在比较 2 个数据表中的数字值,并将相关数据从两个数据表中放入它们自己的数组中。我需要找到 运行 其他分析步骤的匹配值。
For i = Lbound(Array1) to UBound(Array1)
For j = LBound(Array2) to UBound(Array2)
If (criteria for Array2) then
variable = 11111
Else
variable = 22222
End if
If variable = Array1(i,1) Or variable = Array1(i,2) or variable = Array1(i,3) then
more steps
Else
more steps
End if
next j
next i
第一个 if 语句正确设置了变量,但变量不符合任何条件。它不会像它应该的那样去其他地方。现在我只知道这些是因为我一步一步地浏览了代码。如果我只是 F5 和 运行 东西,“Excel 没有响应”。我不知道挂断它是什么。我所有的变量都已声明并分配了一个类型,我没有遗漏任何结束语句。而且我不知道我做错了什么。
我需要在我的代码中检查什么?
编辑
抱歉,在这种情况下,我不允许在此处上传任何代码。它与工作相关,NDA 之类的东西。因此伪代码。我需要展示的东西不会有什么大不了的(至少我认为不会),但我不会冒险。
抱歉。
事实证明,解决方案与命名不当的数组(不是我)和一个简单的拼写错误(绝对是我)有关。我敢肯定,如果我被允许 post 实际代码,那么对于 Stack Overflow 的好公民来说,这将是一个简单的解决方案。
对于它的价值,我认为在这种情况下我不能这样做是愚蠢的。感谢@ScottCraner 和@SuperSymmertry 尝试提供帮助,即使没有太多进展。
太好了,我仍然对 Val 感到好奇。如果您有时间,我将不胜感激。来自真人的任何东西都比 Microsoft 文档更好。