在我select的列中第一次使用的行

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

尝试

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

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

在你的情况下,虽然不太可能,但第一行是第一行。在这种情况下,上面的代码实际上会select你使用的范围的最后一行。 作为这种情况下的安全措施,请确定最后一行,并确保您的第一行是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 

请看下面的代码。 它会跳过所有由单元格的第二个参数表示的A列中的空白行为1.然后为variablesfirstRow和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 

见下面没有循环。

 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