Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 选择刚粘贴的行,然后按列排序,然后清除多余的行_Excel_Vba_Paste - Fatal编程技术网

Excel 选择刚粘贴的行,然后按列排序,然后清除多余的行

Excel 选择刚粘贴的行,然后按列排序,然后清除多余的行,excel,vba,paste,Excel,Vba,Paste,我正在尝试创建一个执行以下3个步骤的宏: 步骤1-将.txt文件中的数据复制并粘贴到excel的第一个空单元格中 步骤2-按第三列(D)对新粘贴的数据进行排序。在这一行之上将有数百行数据,我不希望与之一起排序 步骤3-从所有不包含数字的行中清除数据,这些数字将是底部的行,可以是1行,也可以是3行 Sub LASTROW() Dim rngLast As Range With ThisWorkbook.Worksheets("RCM") If .Range("B1").Value = "" Th

我正在尝试创建一个执行以下3个步骤的宏:

步骤1-将.txt文件中的数据复制并粘贴到excel的第一个空单元格中

步骤2-按第三列(D)对新粘贴的数据进行排序。在这一行之上将有数百行数据,我不希望与之一起排序

步骤3-从所有不包含数字的行中清除数据,这些数字将是底部的行,可以是1行,也可以是3行

Sub LASTROW()
Dim rngLast As Range

With ThisWorkbook.Worksheets("RCM")
If .Range("B1").Value = "" Then
Set rngLast = .Range("B1")
Else
Set rngLast = .Cells(.Rows.Count, "B").End(xlUp).Offset(1, 0)
End If
rngLast.PasteSpecial

Selection.Sort Key1:=Selection.Cells(1, 3), Header:=xlNo

End With

End Sub
编辑:我通过使用一个单独的宏进行清除,解决了最后一步:

Sub ClearHeaders()

    Dim LASTROW As Long
    Dim I As Long

LASTROW = Cells(Rows.Count, "D").End(xlUp).Row
For I = LASTROW To 2 Step -1
If (Not (IsNumeric(Cells(I, "D")))) Then
 Rows(I).ClearContents
 End If
 Next I

End Sub

我会有一个按钮,一个接一个地调用这两个函数。谢谢大家

(D)列上方数百行?是的,这将是一个持续的列表。每次执行此过程时,我们都必须将新的数据范围粘贴到工作表中。现在是第700行,因为我们在2020年1月6日开始使用它。您的意思是在
rngLast
上方有数百行,请尝试使用宏记录器执行您想要执行的操作。然后将代码更改为仅适用于所选区域。您可以将其删除,除非您想将最终代码作为答案发布。