识别表号

时间:2012-01-26 16:20:11

标签: excel-vba vba excel

我有一张工作簿,上面有姓名:学生(1),学生(2),学生(3)等。

如果已经有三张纸,我将通过vba添加一张名为Student(4)的纸张。如何识别最后一个工作表编号(本例中为3)所以我知道我需要将下一个工作表命名为Student(4)?

提前致谢

1 个答案:

答案 0 :(得分:1)

以下代码显示当前最大的学号。这是你追求的吗?

警告。根据我的经验,随着工作表数量的增加,工作簿变得非常难以使用。我使用了一张40张,发现它是一场噩梦。理论上也有255的限制,但我告诉Excel在达到之前会超过其他限制。

Option Explicit
Sub NextSheetName()

  Dim NameCrnt As String
  Dim NumCrnt As Long
  Dim NumMax As Long
  Dim Pos As Long
  Dim WkSht As Worksheet

  NumMax = 0

  For Each WkSht In Worksheets
    NameCrnt = WkSht.Name
    Pos = InStr(1, NameCrnt, "(")
    If Pos = 0 Then
      ' Code to handle non-standard name.
    Else
      NumCrnt = Val(Mid(NameCrnt, Pos + 1, 1))
      If NumMax < NumCrnt Then
        NumMax = NumCrnt
      End If
    End If
  Next

  Debug.Print "Largest current student number=" & NumMax

End Sub