首页 > 解决方案 > 比较有问题

问题描述

我正在尝试将我的用户表单输入与 excel 中的一列数字进行比较;找到我的用户表单输入小于或等于的数字,并将与之比较的单元格旁边的单元格的值分配给变量(即,如果输入小于或等于 A2,则变量设置为等于 B20)当我这样做时,无论输入值是否小于 A 列,它都会给我 B 列中的最后一个值。

我在 If Then 之后尝试了 Exit For ,但这只是在第一次迭代后停止了它。

Private Sub CommandButton2_Click()
Dim TextBox5 As Integer
If UserForm1.OptionButtonRes.Value = True Then
        Dim i As Integer
        For i = 1 To 216 Step 1
            If Sheet2.Cells(i, 1).Value >= TextBox5 Then
            ValueCharge = Sheet2.Cells(i, 2).Value
            End If
        Next i
End If
MsgBox (ValueCharge)

标签: excelvba

解决方案


TextBox5 只是看起来像数字的文本。您需要转换为真正的数值才能进行有效比较。

    For i = 1 To 216 Step 1
        If Sheet2.Cells(i, 1).Value >= val(TextBox5) Then
            ValueCharge = Sheet2.Cells(i, 2).Value
            Exit For
        End If
    Next i

推荐阅读