Excel VBA宏把我难住了

Excel VBA宏把我难住了,excel,vba,Excel,Vba,我正在使用宏复制活动工作表,并将其重命名为单元格“C2”的任何值。唯一的问题是,当它复制工作表时,它会以某种方式从我的工作表顶部删除表单按钮,并将它们替换为单元格“AF”中的code=$c$2 据我所知,从VBA代码中没有任何内容引用单元格“AF”。有人能告诉我为什么会这样吗 Sub Copy_Rename() Dim shtName As String shtName = ActiveSheet.Name ActiveSheet.Copy before:=ActiveS

我正在使用宏复制活动工作表,并将其重命名为单元格“C2”的任何值。唯一的问题是,当它复制工作表时,它会以某种方式从我的工作表顶部删除表单按钮,并将它们替换为单元格“AF”中的code=$c$2

据我所知,从VBA代码中没有任何内容引用单元格“AF”。有人能告诉我为什么会这样吗

Sub Copy_Rename()
    Dim shtName As String
    shtName = ActiveSheet.Name
    ActiveSheet.Copy before:=ActiveSheet
    ActiveSheet.Name = Range("C2").Value
    Sheets(shtName).Activate
End Sub
试试这个:

Sub Copy_Rename()
    Dim sht As Worksheet
    Set sht = ActiveSheet
    Application.CopyObjectsWithCells = True '<< to also copy objects not just cell contents etc
    sht.Copy before:=sht
    'Get the just-created sheet
    With Sheets(sht.Index - 1)
        .Name = sht.Range("C2").Value
        .Activate
    End With
End Sub
子副本_重命名()
将sht变暗为工作表
设置sht=ActiveSheet
Application.CopyObjectsWithCells=True'