我有一个userform,用于表示用户输入以在工作簿中执行某些操作,其中一个操作是在工作簿中插入新选项卡,并让用户在其中输入新工作表的名称一个输入框。我希望能够引用这个新工作表(但我不知道其他人可能会命名它)并在新创建的工作表中粘贴图表对象。
到目前为止,添加工作表代码工作正常,但我尝试粘贴图表范围的任何尝试都无效。我目前添加工作表的代码是:
Private Sub MyChart_Click()
Dim Answer As String
Dim sht_name As Variant
On Error Resume Next
If Me.OptionButton2.Value = True Then
Unload Me
sht_name = InputBox("Please enter value")
If sht_name <> "" Then
Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = sht_name
Else
Exit Sub
End Sub
我的图表存在于另一个工作表(&#34; Sheet2&#34;)中,每当用户在Userform中选择此OptionButton2时,我都会尝试将其复制到新创建的工作表中...感谢任何帮助。< / p>
答案 0 :(得分:3)
使用Worksheets.Add
方法时,会自动激活该工作表。要测试这个,你可以运行这一小部分代码:
Option Explicit
Private Sub SheetReference()
Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Test"
Debug.Print ActiveSheet.Name
End Sub
你会看到的输出是
Test
因此,在您的情况下,您可以声明worksheet
变量,然后在调用add method
后设置引用。像这样:
Option Explicit
Private Sub MyChart_Click()
Dim Answer As String
Dim sht_name As Variant
Dim ws As Worksheet
On Error Resume Next
If Me.OptionButton2.Value = True Then
Unload Me
sht_name = InputBox("Please enter value")
If sht_name <> "" Then
Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = sht_name
Set ws = ActiveSheet
With ws
'Do whatever you need to do on the worksheet
End With
Else
Exit Sub
End If
End Sub