压缩和合并多行VBA代码到一行

有人能让我知道如何在一行中写下面两组代码(每组代码)吗?

newb.sheets("Sheet1").Cells.EntireColumn.AutoFit newb.sheets("Sheet2").Cells.EntireColumn.AutoFit newb.sheets("Sheet3").Cells.EntireColumn.AutoFit newb.sheets("Sheet4").Cells.EntireColumn.AutoFit LastRow1 = sheets("Sheet1").Range("A1000000").End(xlUp).Row LastRow2 = sheets("Sheet2").Range("A1000000").End(xlUp).Row LastRow3 = sheets("Sheet3").Range("A1000000").End(xlUp).Row LastRow4 = sheets("Sheet4").Range("A1000000").End(xlUp).Row 

简单来说,你可以使用For循环

 For i = 1 To 4 newb.sheets("Sheet" & i).Cells.EntireColumn.AutoFit LastRow1 = sheets("Sheet" & i).Range("A1000000").End(xlUp).Row Next i 

这里, 4表示张数

换句话说,您可以使用ThisWorkbook.Worksheets.Count获取总计工作表的数量

 For i = 1 To ThisWorkbook.Worksheets.Count newb.sheets("Sheet" & i).Cells.EntireColumn.AutoFit LastRow & i = sheets("Sheet" & i).Range("A1000000").End(xlUp).Row Next i 

你也可以这样做:

 Dim LastRow() As Long Dim i As Integer For i = 1 To ThisWorkbook.Worksheets.Count With ThisWorkbook.Worksheets(i) ReDim Preserve LastRow(i-1) LastRow(i-1) = .Range("A" & .Rows.Count).End(xlUp).Row .Cells.EntireColumn.AutoFit End With Next i