我有一个要求,我需要将xml文档导入到excel文件中,并在一个示例中重新排列它,以了解导入后文件的外观,其中数据可从A列到F列。
导入后
现在我有一组预定义的列,我需要根据第一列中的空白单元格移动该组。
在上面的示例中,列B到E被分组,并且列B的第一个非空单元格从第4行开始。然后我需要在列B中找到最后一个非空单元格,这里是B10。
现在,我需要将所有数据从范围B4到E10移到顶部。如下图
最终输出
我试图找到第一个非空单元格和最后一个非空单元格。但不确定如何获取所选单元格的范围并移至第一个可用单元格。有人可以帮我吗?
提前谢谢...
答案 0 :(得分:1)
您可以只使用firstRow
和lastRow
变量,创建范围,然后将其剪切/移动到B1
:
Sub moveGroup()
Dim rng As Range
Dim firstRow As Long, lastRow As Long
With Columns("B")
If .Cells(1, 1) <> "" Then ' Remember Cells(1,1) is RELATIVE to the range "Column B"
firstRow = 1
Else
firstRow = .Cells(1, 1).End(xlDown).Row
End If
lastRow = .Cells(Rows.Count, 1).End(xlUp).Row
Debug.Print "First row is: " & firstRow & "; Last row is: " & lastRow
End With
Set rng = Range("B" & firstRow & ":E" & lastRow)
rng.Cut Destination:=Range("B1")
Application.CutCopyMode = False
End Sub
答案 1 :(得分:0)
尝试一下(未测试):
With Range("B:E")
.Resize(.SpecialCells(xlCellTypeConstants).EntireRow.Rows(1).Row - 1).Delete xlShiftUp
End With