Скопировать активный лист в новую книгу без формул - PullRequest
0 голосов
/ 21 января 2020

Я хотел бы скопировать активный лист (независимо от имени листа) в новую рабочую книгу, чтобы сохранить ее без формулы. Копия листа на новый лист работает в соответствии с VBA Копировать лист на новый лист без формул с некоторыми добавлениями в код:

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). Показать до «end if» и изменить «ActiveSheet.Name» на «ThisWorkbook.ActiveSheet.Name», но это не работает. (Или, по крайней мере, он копирует лист в новую рабочую книгу, но не передает значения). Любые идеи о том, как запустить код? Заранее спасибо!

1 Ответ

0 голосов
/ 21 января 2020

Избегайте использования неявной функции копирования. Попробуйте это:

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 - ваш друг в этой ситуации!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...