Копирование листа в другую папку - PullRequest
0 голосов
/ 29 марта 2020

Я пишу код для копирования листа 8 из книги с именем xyz.xlsx, присутствующего в ячейке P2 листа sheet1, и вставки его в другую папку X. Я не написал код вставки до сих пор.

Я получаю:

Ошибка времени выполнения '424' Требуется объект

Фрагмент кода:

Sub file_name()
returnVal = Sheet1.Cells(2, 16).Value
Dim FPath As String
FPath = Application.ActiveWorkbook.Path
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sheet8.Copy
Application.ActiveWorkbook.SaveAs FileName:=returnVal & “.xlsx”
Application.ActiveWorkbook.Close False
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Я очень плохо знаком с макросами.

1 Ответ

0 голосов
/ 29 марта 2020

Мои предположения:

  1. Я предполагаю, что ячейка P2 из Sheet1 имеет значение типа xyz.xlsx.
  2. Я предполагаю что рабочая книга, из которой вы запускаете код, сохранена (хотя бы один раз, чтобы получить правильное значение FPath).
  3. Я предполагаю, что у вас есть Sheet8

Код:

Это то, что вы пытаетесь?

Option Explicit

Sub file_name()
    Dim ScrnUpdating As Boolean
    Dim DispAlerts As Boolean

    On Error GoTo Whoa

    With Application
        '~~> Store existing settings before changing
        ScrnUpdating = .ScreenUpdating
        DispAlerts = .DisplayAlerts

        .ScreenUpdating = False
        .DisplayAlerts = False
    End With

    Dim returnVal As String
    returnVal = Sheet1.Cells(2, 16).Value

    Dim FPath As String
    FPath = ThisWorkbook.Path

    Sheet8.Copy

    ActiveWorkbook.SaveAs Filename:=FPath & "\" & returnVal, FileFormat:=xlOpenXMLWorkbook

    ActiveWorkbook.Close False

LetsContinue:
    With Application
        .ScreenUpdating = ScrnUpdating
        .DisplayAlerts = DispAlerts
    End With

    Exit Sub
Whoa:
    MsgBox Err.Description
    Resume LetsContinue
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...