VBA比较collection.count和combobox.value?

时间:2015-06-18 14:22:24

标签: excel-vba vba excel

代码在活动工作表上工作正常,但当它尝试使用另一个工作表中的相同代码时,无限循环。

我强制休息,并检查即时窗口中的值。

? colRAE.count

 187433

? cmbNumberOfRuns

3

? colRAE.count < cmbNumberOfRuns

True

我的while循环基于最后一部分,似乎是循环继续的原因。

任何人都能解释一下吗?

1 个答案:

答案 0 :(得分:0)

我唯一的猜测是你正在进行字符串比较。如果cmbNumberOfRuns是ComboBox,则通过调用它来获取默认属性 - .Text。如果colRAE.Count被解释为String,您将得到问题中显示的结果:

Sub TextCompare()

    Dim cmbNumberOfRuns As String
    Dim colRAE As String

    cmbNumberOfRuns = "3"
    colRAE = "187433"

    Debug.Print colRAE < cmbNumberOfRuns

End Sub

我建议显式调用cmbNumberOfRuns的属性(为了便于阅读和避免重复此问题),并明确地转换为Long进行数值比较:

Debug.Print colRAE.Count < CLng(cmbNumberOfRuns.Text)