После нескольких часов работы я сдаюсь, поскольку больше не вижу решения.Невозможно создать алгоритм для последовательности в VBA
поэтому я прошу вашей помощи, чтобы создать следующую последовательность:
для примера, приведенного является началом кода: 6D082A
1-й позиции («А») от массива с 16 элементов в этой последовательности : «0», «0», «4», «5», «», «C», «D», «E», «F»)
3-е и 5-е положение (082) имеет значения от 000 до 999 , вторая позиция («D») имеет значения от «A» "до" Z " 1-я позиция (6) имеет значения от 1 доТаким образом, последовательность из примера выше код: 6D082A 6D082B 6D082C .. 6D082F 6D0830 6D0831 .... 6D083F 6D0840 ... 6D999F 6E0000 ... . 6Z999F 7A0000 .... 9Z999F который является Absolut последний код в этой последовательности
У всех петель внутри счетчиков я потерян!
В конце пользователь должен также ввести данный первый код и количество кодов, которые он хочет. Мой последний судебный процесс (без запуска кода и любого переменного количества кодов для создания.
Sub Create_Barcodes_neu2()
Dim strErsterBC As String
Dim intRow As Integer
Dim str6Stelle As Variant
Dim intStart6 As Integer
Dim str6 As String
Dim i As Integer, ii As Integer, Index As Integer
'On Error Resume Next
Dim v As Variant
str6Stelle = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F") '16 Elemente
strErsterBC = InputBox("Enter the first Barcode.", "Barcode-Generator")
intRow = InputBox("Enter the number of barcodes to create.", "Barcode-Generator")
intStart6 = ListIndex(Mid(strErsterBC, 6, 1), str6Stelle)
str35stelle = CInt(Mid(strErsterBC, 3, 3)) 'Zahl 000-999
str2stelle = Mid(strErsterBC, 2, 1) letters A-Z
str1stelle = Left(strErsterBC, 1)
'Debug.Print str6Stelle(1); vbTab; str6Stelle(2); vbTab; str6Stelle(15); vbTab; str6Stelle(16)
For Z = 0 To 32
ausgabe6 = i + intStart6
i = i + 1
ausgabe35 = str35stelle
ausgabe2 = i3
ausgabe1 = i4
If i = 16 Then
i = 0
i2 = i2 + 1
ausgabe35 = i2 + str35stelle
If i2 = 999 Then
ausgabe35 = 999
i2 = 0
i3 = i3 + 1
If i3 = 26 Then
ausgabe2 = 26
i3 = 1
i4 = i4 + 1
If i4 > 9 Then
MsgBox "Ende"
Exit Sub
End If
End If
End If
End If
st6 = str6Stelle(ausgabe6)
st35 = Format(ausgabe35, "000")
ausgabe2 = Chr(i3)
ausgabe1 = i4
Next Z
End Sub
Надеется, что вы можете помочь мне в моем решении! Большого спасибо! Майкл
Так что, если пользователь вводит «3», тогда он получает 6D082A, 6D082B, 6D082C, если он дает 6D082A в качестве первого штрих-кода? – displayname