基于变量创建和命名新图纸的VBA代码

基于变量创建和命名新图纸的VBA代码,vba,excel,Vba,Excel,我试图让我的代码添加一个工作表,该工作表的名称由代码根据函数_name变量确定。当我运行这个函数时,它将新的工作表函数命名为。有什么想法吗 For X = 1 To B Sheets("Calculations").Select Function_Name = Range("B2").Offset(X, 0) 'Gets the Function Name Worksheets.Add().Name = ("Function_Name") Next X 在原始代码中

我试图让我的代码添加一个工作表,该工作表的名称由代码根据函数_name变量确定。当我运行这个函数时,它将新的工作表函数命名为。有什么想法吗

For X = 1 To B
    Sheets("Calculations").Select
    Function_Name = Range("B2").Offset(X, 0)   'Gets the Function Name
    Worksheets.Add().Name = ("Function_Name")
Next X

在原始代码中,函数名用引号括起来

Worksheets.Add().Name = ("Function_Name")
应该删除引号

Tim的回答提供了一种更简洁的代码编写方法


您也可以考虑引入一些错误捕获,因为如果您尝试添加一个已经存在的名称的工作表,则将得到运行时错误。

在原始代码中,您在“< /P>”中的引号中有函数名。

Worksheets.Add().Name = ("Function_Name")
Dim wksSource   as worksheet

For X = 1 To B
    Sheets("Calculations").Select
    Function_Name = Range("B2").Offset(X, 0)   'Gets the Function Name
    Set wksSource = worksheets.add
    wksSource.Name = ("Function_Name")
    Set wksSource = nothing
Next X
应该删除引号

Tim的回答提供了一种更简洁的代码编写方法

您也可以考虑引入一些错误捕获,因为如果您尝试添加一个已经存在的名称的工作表,则将得到运行时错误。

Dim wksSource   as worksheet

For X = 1 To B
    Sheets("Calculations").Select
    Function_Name = Range("B2").Offset(X, 0)   'Gets the Function Name
    Set wksSource = worksheets.add
    wksSource.Name = ("Function_Name")
    Set wksSource = nothing
Next X