【问题标题】:Copy active sheet to new workbook without formulas将活动工作表复制到没有公式的新工作簿
【发布时间】:2020-01-21 23:40:16
【问题描述】:

我想将活动工作表(尽管工作表名称)复制到一个新的工作簿,以便在没有公式的情况下保存。根据VBA Copy a Worksheet to a New Sheet without Formulas 将工作表复制到新工作表并添加一些代码:

Public Sub CopySheetAndRename()
Dim newName As String
 On Error Resume Next
newName = InputBox("Enter the name for the copied worksheet")
 If newName <> "" Then
    ActiveSheet.Copy After:=Worksheets(Sheets.Count)
    On Error Resume Next
    ActiveSheet.Name = newName
    Worksheets(newName).UsedRange.Value = Worksheets(newName).UsedRange.Value
End If
End Sub

-- 然后我尝试添加对话框 Application.Dialogs(xlDialogSaveAs).Show 在“end if”之前并将“ActiveSheet.Name”更改为“ThisWorkbook.ActiveSheet.Name”,但它不起作用。 (或者至少它将工作表复制到新工作簿中,但不传输值)。关于如何运行代码的任何想法?提前谢谢!

【问题讨论】:

  • ActiveSheet.Copy After:=Worksheets(Sheets.Count) 不会将工作表复制到新工作簿中。

标签: excel vba


【解决方案1】:

避免使用隐式复制功能。 试试这个:

Activesheet.Copy
'Entire sheet is now on the clipboard
NewSheet.PasteSpecial Paste:=xlPasteValues
'Paste refers to the method of pasting, you can paste using any of the xlPasteXXX 
types'

NewSheet 指的是包含新工作表的工作表对象。 如果您需要创建一个新工作表,那么只需声明一个工作表对象并将其设置为新工作表 示例:

dim ws as worksheet
set ws = Sheets.Add(After:=Sheets.Count)

如果您需要添加不同代码的新工作簿,但在这种情况下 google 是您的朋友!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-14
    相关资源
    最近更新 更多