【问题标题】:Copy a hidden sheet (which includes shapes that have macros assigned to them) to another sheet and hide the sheet back将隐藏的工作表(包括分配有宏的形状)复制到另一个工作表并隐藏工作表
【发布时间】:2018-03-24 20:37:52
【问题描述】:

我有一张有七个矩形的工作表,每个矩形都有一个分配给它的宏,我已经像模板一样美化了它。 有很多这样的床单,我想把它们都隐藏起来。

现在,我想取消隐藏工作表,例如 sheet1,以完全相同的格式复制其所有内容,包括形状和相应的宏,将其粘贴到工作表 3 并再次隐藏工作表 1。

我已经用下面的代码尝试过了,但不知何故,对象和格式没有被复制。

Sub abcd()
      Dim ws As Worksheet
      Set ws = Sheets("Sheet2")
      ws.Visible = xlSheetVisible
          ws.Select

          Selection.Copy

      Dim rs As Worksheet
      Set rs = Sheets("Sheet4")
          rs.Select                                              
          ActiveSheet.Paste
          Application.CutCopyMode = False
End Sub

我怎样才能做到这一点?

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    您应该复制整个工作表,而不仅仅是选择:

    '// get the sheet to be copied
    Dim ws As Worksheet
    Set ws = Sheet1
    
    
    '// copy it and position before, say sheet5
    ws.Copy Before:=Sheet5
    
    '// get a reference to the new sheet
    Dim WSNew as worksheet
    Set WSNew = Sheets(Sheet5.Index - 1)
    
    '// Give the sheet a new name and make it visible.
    WSNew.Name = "New name"
    WSNew.Visible = xlSheetVisible
    

    请注意,我使用的是内部工作表编程名称,而不是显示名称 - 这是更可靠的,因为用户无法更改内部名称,尽管您可以在工作表的属性选项卡中更改它。

    另外,不需要使模板表可见,只需复制一个即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-13
      • 2012-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多