在 Excel 宏中,我有以下语句:
mese= 6 'from excel cell
mese_tgt = 6 'from input box
quindicina =1 'from excel cell
quindicina_tgt = 1 'from input box
If mese = mese_tgt And quindicina = quindicina_tgt Then
'do stuff here
End If
这将始终返回 false。如果我调试,我会看到值被正确分配,所以我有
If 6 = 6 And 1 = 1 Then
我错过了什么?据我所知,vba 不需要 == 进行比较,但也许我错了?
编辑:我不声明变量,只是做:
mese_tgt = InputBox("Che mese vuoi elaborare?", "Scegli il mese")
quindicina_tgt = InputBox("Quale quindicina vuoi elaborare? 1 o 2", "Scegli la quindicina")
mese = sh2.Range("B" & riga).Value
quindicina = sh2.Range("C" & riga).Value
问题在于:
mese_tgt = InputBox("Che mese vuoi elaborare?", "Scegli il mese")
正在返回一个字符串而不是一个数字。在 Excel 中"1" <> 1
,您必须声明变量,以便 VBA 不会猜测类型:
Dim mese as Long, mese_tgt as Long, quindicina as Long, quindicina_tgt as Long
现在 VBA 不会猜测类型,它会将结果强制为 Long。
One Note Long 只是整数,没有小数。如果您的数字有小数,则使用Double
代替Long
人们应该养成总是声明变量的习惯。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句