Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 用于将工作表名称添加到单元格的宏_Vba_Excel - Fatal编程技术网

Vba 用于将工作表名称添加到单元格的宏

Vba 用于将工作表名称添加到单元格的宏,vba,excel,Vba,Excel,第一篇文章在这里发表,仍然是macros的新手:-) 是否有任何方法可以使用宏将新创建的图纸名称插入单元格 我正在为我们购买的不同供应商创建一个工作簿 我有一个宏(来自这个论坛上另一个有用的帖子:-)),它会复制并提示输入供应商的名称;然后将此名称作为工作表名称 我已经尝试找到了使用该工作表名称并将其填充到单元格B1中的命令-是否可以这样做 我当前的宏是: Sub New_Page() Dim wb As Workbook: Set wb = ThisWorkbook Dim w

第一篇文章在这里发表,仍然是macros的新手:-)

是否有任何方法可以使用宏将新创建的图纸名称插入单元格

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

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

我已经尝试找到了使用该工作表名称并将其填充到单元格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

谢谢你的帮助

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

ws.Copy after:=ws: Set newws = ActiveSheet: newws.Name = newname: newws.Range("B1") = newws.Name
考虑到您似乎正在根据供应商的名称创建新的工作表,您可能会觉得很有趣