Excel宏如果为空则删除第一行

时间:2012-09-25 16:34:37

标签: excel vba

我遇到的问题是,如果第一行为空,宏将删除整个列。有没有办法找到第一个可用的数据行?我假设问题是将“A2”命名为范围?

Sub PrepForUpload()

Dim rowNumber As Integer

Sheets("Initiatives").Select

ActiveSheet.Range("a2").Select
    While (Range(ActiveCell, ActiveCell.Offset(0, 0)) <> "")
        ActiveCell.Offset(1, 0).Select
    Wend
rowNumber = ActiveCell.Row

ActiveSheet.Range(rowNumber & ":65536").Select
Selection.Clear

Range("A2").Select
ActiveWorkbook.Save

End Sub

任何帮助都会很棒

由于

1 个答案:

答案 0 :(得分:1)

使用选择会使您的宏变慢。如果您要在最后一个填充的A单元格之后清除所有内容,请尝试使用

Sub PrepForUpload()

Dim rowNumber As Integer

with Sheets("Initiatives")

    if len(.cells(2,1))=0 then 
        rowNumber=.cells(2,1).end(xldown).end(xldown).row + 1
    else
        rowNumber=.cells(2,1).end(xldown).row + 1
    end if

    .rows(rowNumber & ":" & .rows.count).Clear

end with

ActiveWorkbook.Save

End Sub