如何在 Excel VBA 中获取最后一个工作表?

Dan*_*anM 6 vba microsoft-excel

我有一张名为“End”的工作表,需要将其移动为所有可用工作表中的最后一张。我需要使用 VBA 来做到这一点。

我有一个有效的排序例程,我只需要移动的语法。这是我所拥有的:

Private Sub CommandButton263_Click()
Dim i As Integer
Dim j As Integer
For i = 1 To Sheets.Count
  For j = 1 To Sheets.Count - 1
        If UCase$(Sheets(j).Name) > UCase$(Sheets(j + 1).Name) Then
           Sheets(j).Move After:=Sheets(j + 1)
        End If
  Next j
Next i
Sheets("Navigation").Select
Sheets("Navigation").Move Before:=Sheets(1)
Sheets("Navigation (2)").Select
Sheets("Navigation (2)").Move Before:=Sheets(2)
Sheets("EstimateTemplate").Select
Sheets("EstimateTemplate").Move Before:=Sheets(3)
Sheets("Formulas").Select
Sheets("Formulas").Move Before:=Sheets(4)
Sheets("End").Move After:=Sheets(EOF)  'what can i use instead of EOF?
Sheets("Navigation (2)").Select
End Sub
Run Code Online (Sandbox Code Playgroud)

具体看线Sheets("End").Move After:=Sheets(EOF)-我可以用什么来获得最后一张纸?

Jon*_*nno 11

Sheets("End").Move after:=Worksheets(Worksheets.Count)

Worksheets.Count 将返回工作表的总数,Worksheets(index) 选择特定数量的工作表。结合两者,你应该得到最后一个,不管它是什么。