2016-07-15 56 views
-1

我试图构建一个宏,该工具条将工作表从一个工作簿复制到另一个工作簿中的工作表中。有没有办法使用VBA代码来手动选择我要复制的工作表?在Excel中选择工作表的对话框

现在,只要我将完整的工作表名称输入到实际的VBA代码中,宏就可以工作。理想情况下,我希望宏允许我通过对话框选择工作表。我知道你可以复制/粘贴纸张或其内容,但是由于尺寸的原因,我工作的人不想这样做。

+0

您也可以通过索引选择工作表。 – Fairy

+2

您到目前为止已尝试解决此问题。 SO有助于解决编码问题。你当然可以在这些部分中完成整个操作,对于一些子部分,你可以很容易地从这里提出的各种问题中获得代码。 – skkakkar

+0

如果你想通过对话框选择工作表,那么你应该先创建对话框。由于我不知道任何这样的默认情况下使用Excel的对话框,我想说你必须在表单中使用'UserForm'和'ListBox'来创建它。 – Ralph

回答

2

您可以使用Worksheets集合以用户形式填充ListBox。这应该让你开始:(!)的用户表单

enter image description here

代码

Private Sub UserForm_Initialize() 

    Dim v As Worksheet 

    For Each v In Worksheets 
     UserForm1.lstWorksheets.AddItem v.Name 
    Next 

End Sub 

Private Sub cmdSelectWorksheet_Click() 
    MsgBox "You selected " & lstWorksheets.Value 
End Sub