Я искал в Интернете, и я не могу понять, что у меня проблема. Любая помощь приветствуется. Мой код выглядит следующим образом:VBA Разделение одной и той же строки несколько раз
Private Sub removebutton_Click()
Dim iRow As Long
Dim ws As Worksheet
Dim removebox As String
Set ws = Worksheets("Sheet2")
removebox = InputBox("Please Scan the Barcode to be added", "Add Coin", "Scan Barcode Here")
'Find the next blank row'
iRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1
'Promt User To Actually input data if they have not entered anything'
If Trim(Me.removebox.Value) = "" Then
Me.removebox.SetFocus
MsgBox "Please enter barcode"
Exit Sub
End If
'For 20 digit barcodes split into 4 parts and record the data in the next blank row'
If Len(removebox) = 20 Then
Dim s1 As String
s1 = removebox.Substring(1, 6)
Dim s2 As String
s2 = removebox.Substring(7, 8)
Dim s3 As String
s3 = removebox.Substring(9)
Dim s4 As String
s4 = removebox.Substring(10, 20)
ws.Cells(iRow, 1).Value = Me.s1.Value
ws.Cells(iRow, 2).Value = Me.s2.Value
ws.Cells(iRow, 3).Value = Me.s3.Value
ws.Cells(iRow, 4).Value = Me.s4.Value
'For 18 Digit barcodes spilt into 3 parts and record the data in the next blank row'
ElseIf (removebox) = 18 Then
Dim s5 As String
s5 = removebox.Substring(1, 6)
Dim s6 As String
s6 = removebox.Substring(7, 8)
Dim s7 As String
s7 = removebox.Substring(9, 18)
ws.Cells(iRow, 1).Value = Me.s5.Value
ws.Cells(iRow, 2).Value = Me.s6.Value
ws.Cells(iRow, 3).Value = Me.s7.Value
'If not 20 or 18 digit then it is 16, split into 3 parts and record the data in the next blank row'
Else
Dim s8 As String
s8 = removebox.Substring(1, 6)
Dim s9 As String
s9 = removebox.Substring(7, 8)
Dim s10 As String
s10 = removebox.Substring(9, 16)
ws.Cells(iRow, 1).Value = Me.s8.Value
ws.Cells(iRow, 2).Value = Me.s9.Value
ws.Cells(iRow, 3).Value = Me.s10.Value
End If
End Sub
Так что я испортил, и весь код должен был быть, чтобы удалить элемент, и вместо этого он добавляет элемент, я понимаю, что. Моя проблема в том, что s1 = removebox.Substring(1, 6)
подсвечивает переменную removebox
и сообщает мне Compiler Error: Invalid Qualifier
. Если кто-то может дать мне возможное решение, я знаю, что я делаю что-то неправильно, но при сканировании штрих-кода он входит в число 20, 18 или 16 цифр, но мне нужно сохранить детали отдельно, чтобы создать легкий look-up для базы данных.
Благодарим вас за любую помощь или предложения.
Благодарим вас обоих СООО много! Ты просто спас меня! Я очень ценю вашу готовность помочь кому-то, кто все еще пытается понять все! (Начальник общественного питания я попытался @ вам в этом, но мне не разрешили) –
Рад помочь ... Теперь просто не копируйте его;) Попытайтесь понять, как это работает :) –
Я^_ _ ^, еще раз спасибо. Хотя по какой-то причине мой поиск следующей пустой строки теперь как-то сломался. Он продолжает говорить мне: «Ошибка времени выполнения 91»: переменная объекта или с блоком не установлена », любые идеи? –