使用 VBA 复制整个工作表时如何复制值和格式

0 excel vba

我有下面的代码,效果非常好。

它复制活动工作表并根据特定单元格创建一个具有名称的新工作表。

我可以修改它以在复制时不包含公式吗?我只需要值和格式,因此新工作表是静态快照。

Sub Copyrenameworksheet()
Dim ws As Worksheet
Set wh = Worksheets(ActiveSheet.Name)
ActiveSheet.Copy After:=Worksheets(ActiveSheet.Name)
If wh.Range("C2").Value <> "" Then
ActiveSheet.Name = wh.Range("C2").Value
End If
wh.Activate
End Sub
Run Code Online (Sandbox Code Playgroud)

Sta*_*Jon 6

下面作为制作工作表静态副本的通用方法怎么样:

Dim sht1 As Worksheet 'worksheet to copy from
Dim sht2 As Worksheet 'worksheet to paste to
Set sht1 = ThisWorkbook.Worksheets("Name of the Worksheet to copy from")
sht1.Cells.Copy 'Copy everything in the worksheet
Set sht2 = ThisWorkbook.Worksheets.Add 'create new blank worksheet
sht2.Cells.PasteSpecial xlPasteValues 'first paste values
sht2.Cells.PasteSpecial xlPasteFormats ' then paste formats
sht2.Name="Something" 'give a name to your new worksheet
Run Code Online (Sandbox Code Playgroud)

另外,请避免使用 ActiveSheet 并使用对工作表的显式引用。