如何将工作表的名称保存到 VBA 中的变量?

How do I save the name of a worksheet to a variable in VBA?

因此,我正在尝试将工作表的名称添加到同一工作簿中的新工作表。

例如,我将有一个允许用户 select 单元格的输入框。我想将他们 select 编辑的单元格中的工作表名称保存到一个变量中。

然后将在不同的工作表上调用该变量,将工作表的名称输入到空单元格中。

Sub sheets()

Dim myCell As Range
Dim current As Worksheet

Set myCell = Application.InputBox( _
    prompt:="Select a cell", Type:=8)

current = ActiveSheet

MsgBox current

End Sub

从上面的代码中,我有一个输入框,当用户 select 单元格时,我试图将变量“当前”分配给活动表,然后我 运行 一个消息框检查变量是否已正确分配。它 运行 是一个“未设置对象变量”错误。请问有人知道我可以做些什么来解决这个问题吗?

由于current是Worksheet对象,需要赋值Set:

Set current = ActiveSheet

但是,由于它是一个对象,因此下一行将失败并且还需要更改:

MsgBox current.Name

如果你只想保存名称,你需要将 current 的类型从 Worksheet 更改为 String 并为其赋值 ActiveSheet.Name.