Я написал макрос Excel и, похоже, работает нормально. Он отображает поле ввода и один раз, когда я даю ему значение. Он сохраняет это значение в первой ячейке столбца C (C1). Однако во второй раз, когда я запускаю макрос, я хочу, чтобы он был записан в C2 и сохранял все данные в разных строках в столбце C, но каждый раз он записывает его в C1 и вызывает потерю данных.Как записать каждую запись ввода в строку 1 в Excel?
Sub DataInput()
Dim SearchTarget As String
Dim myRow As Long
Dim Rng As Range
Static PrevCell As Range
Dim FoundCell As Range
Dim CurCell As Range
Dim a As String
Dim Target As Range
'SearchTarget = "asdf"
SearchTarget = InputBox("Scan or type product barcode...", "New State Entry")
If PrevCell Is Nothing Then
myRow = Selection.Row
Set PrevCell = Range("C" & myRow)
End If
'Set Rng = Range("C:C,E:E") 'Columns for search defined here
Set Rng = Range("C:C,C:C") 'Columns for search defined here
With Rng
Set FoundCell = .Cells.Find(What:=SearchTarget, _
After:=PrevCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=True)
End With
If FoundCell Is Nothing Then
MsgBox SearchTarget & " was not found."
Range("C1").Value = InputBox("code?")
Range("D1").Value = Now()
Else
FoundCell.Activate
' If PrevCell.Address = FoundCell.Address Then
' MsgBox "there's only one!"
' End If
ActiveCell.Offset(0, 1).Select
timestamp = Format(Now(), "dd-mmm-yy hh:mm")
ActiveCell = timestamp
ActiveCell = Now()
ActiveCell.Offset(0, 2).Select
ActiveCell = "T141000"
ActiveCell.Offset(0, 1).Select
Set PrevCell = FoundCell
End If
End Sub
изменения 'Range ("C1") Значение = InputBox ("код?")' В 'Range ("C" & Range ("C" и Rows.Count) .END (xlUp) .Row + 1) = InputBox («Код?») 'и посмотреть, помогает ли это –
Да, я попробовал, и он отлично работает! Большое спасибо за вашу помощь – user3127229