在同一代码中新建 sheet 个引用
New sheet created reference within same code
我正在尝试使用以下公式创建一个具有特定名称的新 sheet:
With ThisWorkbook
.Sheets.Add(After:=.Sheets(.Sheets.Count)).Name = Range("B2") & "_MCT"
End With
所以新的 sheet 将被命名为“X_MCT”,X 是单元格 B2 中的值。
在同一代码中,我添加了一个代码,该代码想要用原始 sheet 中的值填充这个新的 sheet。有没有办法做到这一点?下面是我的一个示例方程式,它将进入新创建的 sheet:
Sheets("MCT").Cells(i + 6, 2 * j + j - 2 + 1) = "*FORCES-DEFORMATION FUNCTION ; Forces-Deformation Function"'''
我已经定义了 i 和 j,但是有没有办法将“MCT”更改为代码创建的新“X_MCT”?或者我应该用“活动 sheet 函数”替换它,因为当我创建新的 sheet 时,它会变成活动的 sheet。我的第一个想法是首选,因为它更干净。
下面是我想做的一个例子:
Sub newsheet()
With ThisWorkbook
Sheets.Add(After:=.Sheets(.Sheets.Count)).Name = Range("B2") & "_MCT"
End With
Sheets(Range("B2") & "_MCT").Cells(1, 1) = "*FORCES-DEFORMATION FUNCTION ; Forces-Deformation Function"
End Sub
但是我得到一个“超出范围错误”文本没有写入这个新 sheet。只有 运行 宏再次使用该文本创建新的 sheet,但为什么它不能在原始 sheet 上工作?
试试这个:
Sub NewSheet()
With ThisWorkbook.Sheets
Dim Reference as Worksheet
Set Reference = .Item("A worksheet with B2")
With .Add(After:=.Item(.Count))
.Name = Reference.Range("B2") & "_MCT"
.Cells(1, 1) = "*FORCES-DEFORMATION FUNCTION ; Forces-Deformation Function"
End with
End With
End Sub
由于代码最后一行的 Sheets(Range("B2") & "_MCT")
,您遇到了 超出范围 错误。 Range("B2")
在这种情况下指的是新创建的 sheet 并且是空的。因此,此代码试图访问“_MCT”sheet,我猜它不存在。这就是 下标超出范围 发生的地方。
我正在尝试使用以下公式创建一个具有特定名称的新 sheet:
With ThisWorkbook
.Sheets.Add(After:=.Sheets(.Sheets.Count)).Name = Range("B2") & "_MCT"
End With
所以新的 sheet 将被命名为“X_MCT”,X 是单元格 B2 中的值。
在同一代码中,我添加了一个代码,该代码想要用原始 sheet 中的值填充这个新的 sheet。有没有办法做到这一点?下面是我的一个示例方程式,它将进入新创建的 sheet:
Sheets("MCT").Cells(i + 6, 2 * j + j - 2 + 1) = "*FORCES-DEFORMATION FUNCTION ; Forces-Deformation Function"'''
我已经定义了 i 和 j,但是有没有办法将“MCT”更改为代码创建的新“X_MCT”?或者我应该用“活动 sheet 函数”替换它,因为当我创建新的 sheet 时,它会变成活动的 sheet。我的第一个想法是首选,因为它更干净。
下面是我想做的一个例子:
Sub newsheet()
With ThisWorkbook
Sheets.Add(After:=.Sheets(.Sheets.Count)).Name = Range("B2") & "_MCT"
End With
Sheets(Range("B2") & "_MCT").Cells(1, 1) = "*FORCES-DEFORMATION FUNCTION ; Forces-Deformation Function"
End Sub
但是我得到一个“超出范围错误”文本没有写入这个新 sheet。只有 运行 宏再次使用该文本创建新的 sheet,但为什么它不能在原始 sheet 上工作?
试试这个:
Sub NewSheet()
With ThisWorkbook.Sheets
Dim Reference as Worksheet
Set Reference = .Item("A worksheet with B2")
With .Add(After:=.Item(.Count))
.Name = Reference.Range("B2") & "_MCT"
.Cells(1, 1) = "*FORCES-DEFORMATION FUNCTION ; Forces-Deformation Function"
End with
End With
End Sub
由于代码最后一行的 Sheets(Range("B2") & "_MCT")
,您遇到了 超出范围 错误。 Range("B2")
在这种情况下指的是新创建的 sheet 并且是空的。因此,此代码试图访问“_MCT”sheet,我猜它不存在。这就是 下标超出范围 发生的地方。