[英]Comparing values of cells in a column with ComboBox value input by user
我无法将列中单元格的值与组合框值输入进行比较。
我有2个工作簿测试 (包含ComboBox2)和test1 (包含一个列,其单元格与ComboBox2.value进行比较)
我有一个for循环来实现这一目标。
For i = 1 To LastRow
If wkbSource.Worksheets(sheet_no).Cells(i, 1) = ComboBox2.Value Then
'do something
End If
Next i
我调试了代码,我理解if
statement
即使在匹配后也不会执行。
我该如何解决?
编辑:
另外我想知道如何添加两个单元格值,因为直接添加它会显示不正确的输出。 例如
wkbSource.Worksheets(sheet_no).Cells(i, 1) + wkbSource.Worksheets(sheet_no).Cells(i, 3)
这是(再次)到变体比较诅咒 。 特别参见该问题的“更新4” 。
If wkbSource.Worksheets(sheet_no).Cells(i, 1) = ComboBox2.Value Then
这比较了两个Variant
。 但是,当单元格包含一个数字,并且没有明确地格式化为Text
,前面没有'
输入时。 Excel会将其视为一个数字,因此它的.Value
将是一个数字Variant
。 另一方面, Combobox2.Value
重新调整了文本Variant
,因此比较失败了!
比较两个Variant
变量时,这些操作将失败:
2 = "2" ' False
3 > "2" ' False
因此,在您的特定情况下,解决方案是使用控件和单元格的.Text
属性强制比较文本。 以下是您将如何 - 例如 - 总结与您的查询匹配的单元格:
For i = 1 To LastRow
If Trim(wkbSource.Worksheets(sheet_no).Cells(i, 1).Text) = Trim(ComboBox2.Text) Then
'do something
if IsNumeric(wkbSource.Worksheets(sheet_no).Cells(i, 1).Value2) Then _
mySum = mySum + wkbSource.Worksheets(sheet_no).Cells(i, 1).Value2
End If
Next i
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.