我编写了一段简短的 VBA 代码来实现自动化。
一个简短的片段如下:
Sub TEST()
Rows("1:2").Select
Selection.Delete Shift:=xlUp
Range("A1").Select
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$O$148"), , xlYes).Name = _
"Table2"
End Sub
Run Code Online (Sandbox Code Playgroud)
但是,每个 Excel 文件的行数都不同。现在,当我录制这个宏时,它只需要 $A$1:$O$148 的范围。我如何调整这部分,以便它自动识别最后一行和/或范围?
我已经尝试过:
.Range("A1").SpecialCells(xlCellTypeLastCell).Row
Run Code Online (Sandbox Code Playgroud)
代替:
Range("$A$1:$O$148")
Run Code Online (Sandbox Code Playgroud)
提前致谢!
小智 5
通常,您可以使用以下命令找到最后一行/列,从而找到完整的使用范围:
ActiveWorkbook.Worksheets("NAME").Range("A" & Rows.Count).End(xlUp).row
对于最后一行和
ActiveWorkbook.Worksheets("NAME").Cells(1, Columns.Count).End(xlToLeft).Column
对于最后一列。我建议不要使用,UsedRange因为如果中间有空格,会导致错误。