我有一个搜索但没有找到“7”的宏(如果正确(对,2)= 7那么)。问题是当我将数字更改为11或12等(任意两位数)和代码中的findXX时,它工作正常。有谁知道发生了什么,我需要做的确切变化是什么。
选项明确
Sub DivideSomeStuff()
Dim pair As Range, accumulator As Range
Dim findSeven As Double
Dim remainder As Long
For Each pair In Range("B30, F30, J30")
If Right(pair, 2) = 7 Then
If pair.Offset(0, 2) <= 12 Then
remainder = 0
Else
remainder = pair.Offset(0, 2) Mod 10
End If
findSeven = (pair.Offset(0, 2) - remainder) / 10
For Each accumulator In Range("A36, D36, G36, J36, M36, A40, D40, G40, J40, M40")
If accumulator.Offset(-1, 0) = Val(Left(pair, InStr(pair, "-") - 1)) Then
accumulator.Value = accumulator.Value + remainder
End If
accumulator.Value = accumulator.Value + findSeven
Next accumulator
End If
Next pair
结束子
改变它......
Right(pair, 2) = 7
... 至 ...
Right(pair, 1) = 7
当7是单个字符时,您当前正在获得2个正确的值。
您可能需要在7周围加上引号,看看是否可以在没有它们的情况下工作。