我选择的列中首次使用的行

时间:2016-07-21 15:11:20

标签: excel vba excel-vba

我想要清除工作表中的所有单元格,从我选择的列中的第一个使用的行到最后一个使用的行,但首先我必须知道所选列中第一个使用的行。如何在“X”列中找到第一行? (X可以= {A,B,C,...})

3 个答案:

答案 0 :(得分:3)

尝试

firstUsedRow = Worksheets("Sheet1").Cells(1, 1).End(xlDown).Row

Cells(1, 1)中的第二个参数是列号(例如,A = 1,B = 2等)。 Sheet1是相关工作表的工作表名称。

虽然在您的情况下不太可能第一行是第1行。在这种情况下,上面的代码实际上会选择使用范围的最后一行。作为此情况的安全措施,请确定最后一行并确保第一行为1或上述代码生成的行。所以

finalRow = Worksheets("Sheet1").Cells(Worksheets("Sheet1").UsedRange.Rows.Count, 1).End(xlUp).Row
if finalRow = firstUsedRow then
    firstUsedRow = 1
End If

一起

firstUsedRow = Worksheets("Sheet1").Cells(1, 1).End(xlDown).Row
finalRow = Worksheets("Sheet1").Cells(Worksheets("Sheet1").UsedRange.Rows.Count, 1).End(xlUp).Row
if finalRow = firstUsedRow then
    firstUsedRow = 1
End If

答案 1 :(得分:0)

请参阅下面的代码。它将跳过由单元格的第二个参数表示的A列中的所有空行为1.然后为变量firstRow和lastRow分配行位置。最后清除该范围内的值。

Sub ClearCells()
    Dim i As Integer
    Dim firstRow As Integer
    Dim lastRow As Integer

    i = 1
    Do While Cells(i, 1) = ""
        i = i + 1
    Loop
    firstRow = i
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row

    Range(Cells(firstRow, 1), Cells(lastRow, 1)).ClearContents
End Sub

答案 2 :(得分:0)

见下面没有循环。

Sub ClearCells()
    Dim firstRow As Integer
    Dim lastRow As Integer

    firstRow = Cells(1, 1).End(xlDown).Row
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row

    Range(Cells(firstRow, 1), Cells(lastRow, 1)).ClearContents
End Sub