用于向单元格添加工作表名称的宏

时间:2015-06-12 00:37:42

标签: excel vba excel-vba

首先发布这里,并且仍然是宏的新手: - )

有没有办法可以使用宏将新创建的工作表名称插入单元格?

我正在为我们购买的不同供应商创建一本工作簿。

我有一个宏(来自此论坛上另一个有用的帖子:-)),它复制然后提供输入供应商名称的提示;然后将此名称作为工作表名称。

我试图找到获取该工作表名称的命令并将其填充到单元格B1中 - 是否可以执行此操作?

我当前的宏是:

Sub New_Page()
    Dim wb As Workbook: Set wb = ThisWorkbook
    Dim ws As Worksheet: Set ws = wb.Sheets("Supplier")
    Dim newws As Worksheet, sh As Worksheet, newname
    Dim query As Long, xst As Boolean, info As String

    retry:
    xst = False
    newname = Application.InputBox("Enter the Supplier's name.", info, , , , , , 2)
    If newname = "False" Then Exit Sub
    For Each sh In wb.Sheets
        If sh.Name = newname Then
            xst = True: Exit For
        End If
    Next
    If Len(newname) = 0 Or xst = True Then
        info = "Sheet name is invalid. Please retry."
        GoTo retry
    End If
    ws.Copy after:=ws: Set newws = ActiveSheet: newws.Name = newname
End Sub

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

按照您的编码风格,您可以在此行的末尾找到活动命令。

ws.Copy after:=ws: Set newws = ActiveSheet: newws.Name = newname: newws.Range("B1") = newws.Name

鉴于您似乎是根据供应商的名称创建新的工作表,您可能会发现Can I sort by worksheet tabs很有趣。