Excel 在vba中创建的最后一行顶部的新行
我有以下问题。在所有的“E”列单元格中,我有一个以hh:mm:ss格式显示日期和时间的列。问题是,我尝试了下面的宏,首先对最新记录进行排序,最后保留旧记录,以保留当天所有新条目的记录 问题是它不起作用。我也尝试过做Excel 在vba中创建的最后一行顶部的新行,excel,vba,userform,Excel,Vba,Userform,我有以下问题。在所有的“E”列单元格中,我有一个以hh:mm:ss格式显示日期和时间的列。问题是,我尝试了下面的宏,首先对最新记录进行排序,最后保留旧记录,以保留当天所有新条目的记录 问题是它不起作用。我也尝试过做单元格(“2:2”)。在将数据添加到新行的每个单元格之前插入,但也不起作用。我将把我的全部代码留在这里: If Me.TextBox1.Value <> "" Then 'Encontrar el legajo en la lista row = Me.TextBox1.
单元格(“2:2”)。在将数据添加到新行的每个单元格之前插入,但也不起作用。我将把我的全部代码留在这里:
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
如果Me.TextBox1.Value为“”,则
“legajo en la lista酒店
行=Me.TextBox1.Value
设置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)
“安康特拉·伊恩·拉利斯塔”
wtrow=Me.TextBox2.Value
设置FindRow2=Hoja4.Range(“D:D”).Find(What:=wtrow,LookIn:=xlValues,LookAt:=xlother,MatchCase:=True)
Set AddWT=Hoja3.Cells(Rows.Count,1)。End(xlUp)。Offset(1,3)
“阿格雷加·拉费查和霍拉·拉塞尔达
状态=现在
Set Estado=Hoja3.Cells(Rows.Count,1).End(xlUp).Offset(1,4)
“Agregar la palabra Entergado a la celda
Status2=“Entregado”
Set Estado2=Hoja3.Cells(Rows.Count,1).End(xlUp).Offset(1,5)
与Registros
“是的,阿格雷加罗和拉普拉尼拉
'范围(“2:2”)。插入
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=状态
Estado2.Value=Status2
以
“按日期排序
Hoja3.选择
与Registros
Hoja3.Range(“E2:E1000”).Sort Key1:=Range(“E2”),Order1:=xlDescending,Header:=xlGuess
以
ElseIf Me.TextBox1.Value=”“然后
MsgBox“El legajo no puede estar vacio”
出口接头
如果结束
MsgBox“佐证数据,数据中心”
“卡西拉斯·瓦西亚斯·坎多终点站
TextBox1.Value=“”
TextBox2.Value=“”
TextBox4.Value=“”
TextBox5.Value=“”
'错误块
错误转到0
出口接头
错误处理程序:
'验证输入的数据,因为它们不正确
MsgBox“错误!验证数据是否正确,错误是否正确!”&vbCrLf
端接头
很抱歉,有些文本是西班牙语,但我只需要一个简单的代码来添加一些数据,这样当我搜索特定值时,它会搜索最后输入的值,而不是最旧的值。谢谢 我不确定我是否正确理解了你
但是,如果要根据列E
对整个工作表进行排序,则需要使用整个工作表的范围,而不仅仅是列E
所以它应该看起来像:
Hoja3.UsedRange.Sort Key1:=Range("E2"), Order1:=xlDescending, Header:=xlGuess
您现在拥有的内容只会对列E
对不起,如果这不是你的意思 我不确定我是否正确理解了你
但是,如果要根据列E
对整个工作表进行排序,则需要使用整个工作表的范围,而不仅仅是列E
所以它应该看起来像:
Hoja3.UsedRange.Sort Key1:=Range("E2"), Order1:=xlDescending, Header:=xlGuess
您现在拥有的内容只会对列E
对不起,如果这不是你的意思 谢谢,行得通。我把排序的概念搞砸了,我认为我是这样做的,它把所有的工作表都排序了,而不仅仅是一列,这就是我现在回忆起来的情况。谢谢,这很有效。我把排序的概念搞砸了,我认为我是这样做的,它把所有的工作表都排序了,而不仅仅是一列,我现在回想起来就是这样。