Новая строка в верхней части последней строки, созданной в vba - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть следующая проблема. У меня есть столбцы с датой и временем в формате чч: мм: сс во всех ячейках столбца «Е». Проблема в том, что я попробовал следующий макрос, чтобы сначала отсортировать последнюю запись и, наконец, оставить старую, чтобы сохранить все новые записи дня.

Проблема в том, что не работает. Я попытался также сделать Cells("2:2").Insert перед добавлением данных в каждую ячейку в новой строке, но тоже не сработало. Я оставлю весь свой код здесь:

If Me.TextBox1.Value <> "" Then

'Encontrar el legajo en la lista
row = Me.TextBox1.Value
Set FindRow = Hoja2.Range("B:B").Find(What:=row, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
Set AddMe = Hoja3.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Set AddMe2 = Hoja3.Cells(Rows.Count, 1).End(xlUp).Offset(1, 1)
Set AddMe3 = Hoja3.Cells(Rows.Count, 1).End(xlUp).Offset(1, 2)

'Encontrar el WT en la lista
wtrow = Me.TextBox2.Value
Set FindRow2 = Hoja4.Range("D:D").Find(What:=wtrow, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
Set AddWT = Hoja3.Cells(Rows.Count, 1).End(xlUp).Offset(1, 3)

'Agregar la fecha y hora a la celda
Status = Now
Set Estado = Hoja3.Cells(Rows.Count, 1).End(xlUp).Offset(1, 4)

'Agregar la palabra entregado a la celda
Status2 = "Entregado"
Set Estado2 = Hoja3.Cells(Rows.Count, 1).End(xlUp).Offset(1, 5)

With Registros
'Si lo encuentra, agregarlo a la planilla
'Range("2:2").Insert
AddMe.Value = FindRow.Offset(0, 0)
AddMe2.Value = FindRow.Offset(0, 1)
AddMe3.Value = FindRow.Offset(0, 2)
AddWT.Value = FindRow2.Offset(0, 0).Value
Estado.Value = Status
Estado2.Value = Status2
End With

'Sort by Date
Hoja3.Select
With Registros
Hoja3.Range("E2:E1000").Sort Key1:=Range("E2"), Order1:=xlDescending, Header:=xlGuess
End With

ElseIf Me.TextBox1.Value = "" Then

MsgBox "El legajo no puede estar vacio"

Exit Sub
End If

MsgBox "Los datos fueron corroborados, puede entregar el WT"

'Deja las casillas vacias cuando termina
TextBox1.Value = ""
TextBox2.Value = ""
TextBox4.Value = ""
TextBox5.Value = ""

'error block
    On Error GoTo 0
    Exit Sub
errHandler:
   ' Verify the data entered, because they are not correct
    MsgBox "Error! Verificar los datos ingresados, porque no son correctos!" & vbCrLf

End Sub

Извините, что какой-то текст на Spani sh, но я хочу просто простой код, чтобы добавить некоторые данные, поэтому, когда я ищу определенное значение c, он ищет последние введенные значения, а не самые старые. Спасибо!

1 Ответ

2 голосов
/ 24 апреля 2020

Я не уверен, правильно ли я вас понял.
Но если вы хотите отсортировать Весь лист на основе столбца E, вам нужно использовать диапазон всего листа, а не только столбец E.

Так это должно выглядеть следующим образом:

Hoja3.UsedRange.Sort Key1:=Range("E2"), Order1:=xlDescending, Header:=xlGuess

То, что у вас сейчас есть, будет только сортировать столбец E

Извините, если это не то, что вы имеете в виду.

...