Экспортировать лист как рабочую книгу (только значения) - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь экспортировать несколько листов из существующей книги в новую, но, несмотря на то, что я включил эту инструкцию:

.ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value

Вывод все еще включает формулы.

Вотвесь код:

Sub Sheet_SaveAs()

Dim wb As Workbook
Dim Path As String

'Defining Strings

Path = "%MYPATH%"

'XLS Generator

Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Copy
Set wb = ActiveWorkbook
With wb
 .ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
 .SaveAs Path & "Example" & ".xlsx"
 .Close False
End With
End Sub

Что мне не хватает?

1 Ответ

0 голосов
/ 14 февраля 2019

Вам необходимо ссылаться на листы книги по их названию, а не по активному:

wb.Worksheets("Sheet1").UsedRange.Value = wb.Worksheets("Sheet1").UsedRange.Value 

Чтобы перебрать все скопированные листы:

Dim varSheetNames As Variant: varSheetNames = Array("Sheet1", "Sheet2", "Sheet3")
' ...
Sheets(varSheetNames).Copy ' Note: ActiveWorkbook.Worksheets or ThisWorkbook.Worksheets (depending on where your code is) would be better
' ...
Dim varName As Variant: For Each varName In varSheetNames
    With wb.Worksheets(varName).UsedRange
        .Value = .Value
    End With
Next varName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...