使用组合框复制 sheet

Copy sheet with combo boxes

我有一个作品sheet,当用户点击一个按钮时,它被复制并粘贴到一个新作品sheet中。我成功地复制了作品中的所有内容sheet(形状、按钮等),但包含使用命名范围的下拉列表的组合框除外(使用以下代码创建:http://www.contextures.com/xlDataVal11.html) .

我试着为此录制了一个宏并得到了以下(简化)

ActiveSheet.Shapes.Range(Array("ExampleCombo")).Select
Selection.Copy
ActiveSheet.Paste

由此我了解到组合框被视为一种形状。为了复制所有组合框并将它们放在新 sheet 中的正确位置,因此我尝试了以下操作:

 Sub CopyCombos ()

 Dim ws_new As Worksheet
 Dim ws_old As Worksheet
 Dim Special_Shape As Shape
 Dim Special_Shape_COPY As Shape
 Dim Position_Left As Single
 Dim Position_Top As Single
 Dim Position_Width As Single
 Dim Position_Height As Single

 Set ws_old = ActiveSheet
 ActiveWorkbook.Worksheets.Add
 Set ws_new = ActiveSheet

 For Each Special_Shape In ws_old.Shapes
     'Copy position
         Position_Left = Special_Shape.Left
         Position_Top = Special_Shape.Top
         Position_Width = Special_Shape.Width
         Position_Height = Special_Shape.Height
     'Copy
         Special_Shape.Copy
     'Paste
         ws_new.Paste   '<=== Here's the problem! But why?
     'Rename
         Set Special_Shape_COPY = Selection
     'Put in right place
         Special_Shape_COPY.Left = Position_Left
         Special_Shape_COPY.Top = Position_Top
         Special_Shape_COPY.Width = Position_Width
         Special_Shape_COPY.Height = Position_Height
 Next Special_Shape

 End Sub

我在新作品sheet中粘贴组合框后直接收到错误信息"Can't enter break mode at this time"。我该如何解决这个问题?

而不是:

 Set ws_old = ActiveSheet
 ActiveWorkbook.Worksheets.Add
 Set ws_new = ActiveSheet

并复制,使用:

ActiveSheet.Copy After:=Sheets(Sheets.Count)

这将生成完整的副本:

  1. 细胞
  2. 对象等

Gary​​ 的学生 复制作品的答案sheet 在同一工作簿中复制作品时效果很好:

ActiveSheet.Copy After:=Sheets(Sheets.Count)

但是,当将 sheet 复制到另一个(新的)工作簿时,由于颜色格式不同,这会导致出现问题。为了解决这个问题,我在添加新工作簿之前使用了以下代码:

Workbooks.Add Template:="Workbook"