Я недавно написал эту короткую функцию, но с небольшим опытом работы в VBA im не смог понять, почему это не работает.Вопрос VBA (Excel) с формулой Check Digit
Sub barcodedigit()
Dim barcode(12) As Variant
Dim i As Integer
Dim oddscount As Integer
Dim evenscount As Integer
Dim evensnumbers As Integer
Dim oddsnumbers As Integer
Dim finalnumber As Double
Dim remainder As Integer
oddsnumbers = 0
evensnumbers = 0
For i = 1 To 12
barcode(i) = InputBox("Please enter number" & i)
Next i
For i = 1 To 12
If barcode(i) Mod 2 = 0 Then
evenscount = evenscount + 1 And evensnumbers = evensnumbers + barcode(i)
Else
oddscount = oddscount + 1 And oddsnumbers = oddsnumbers + barcode(i)
End If
Next i
oddsnumbers = oddsnumbers * 3
finalnumber = oddsnumbers + evensnumbers
remainder = finalnumber Mod 10
MsgBox ("Oddscount is equal to " & oddscount & vbNewLine & "Remainder is equal to" & " " & remainder)
End Sub
Моя проблема в том, что это устанавливает каждый результат 0 (oddscount & остатка), хотя это должно логически работать.
Любая помощь приветствуется.
Редактировать: удалять и работать отлично!
Не думайте, что вам нужно И, просто используйте 2 строки кода. –