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