Сохранить форматирование исходного кода

#vba #excel #macros

#vba #excel #макросы

Вопрос:

Не мог бы кто-нибудь, пожалуйста, сказать мне, как я могу сохранить форматирование исходного кода при вставке в мою целевую книгу? Приведенный ниже код в основном переносит данные из одной электронной таблицы в другую, а затем удаляет повторяющиеся строки в целевой электронной таблице, если таковые имеются. Спасибо!

 Sub TransferMar()
'
' Transfer Mar Macro
'

'
    Dim lastRow As Long

    ActiveSheet.Unprotect Password:="xxxxxx"

    Columns.EntireColumn.Hidden = False
    Rows.EntireRow.Hidden = False
    Cells.AutoFilter

    lastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row


    Range(Cells(4, 1), Cells(lastRow, 15)).Copy

    Application.DisplayAlerts = False

    ActiveWorkbook.Close

    Dim wkb As Workbook

    Set wkb = Workbooks.Open("C:UsersxxxxxDesktopMaster - Mar.xlsx")

    Columns.EntireColumn.Hidden = False
    Rows.EntireRow.Hidden = False
    Cells.AutoFilter

    erow = wkb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

    wkb.Sheets(1).Paste Destination:=Sheets(1).Range(Cells(erow, 1), Cells(erow, 15))

    With ActiveSheet
        Set Rng = Range("A3", Range("O3").End(xlDown))
        Rng.RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), Header:=xlYes
    End With


    wkb.ActiveSheet.Cells.EntireColumn.AutoFit

    wkb.Close SaveChanges:=True

    MsgBox "Rows copied into Master MAR Workbook"

End Sub
  

Комментарии:

1. .PasteSpecial Paste:=xlPasteFormats это синтаксис.

2. закройте исходную книгу после вставки

3. Пропустить вступление не могли бы вы добавить эту строку кода в мой код, чтобы он заработал? Я не уверен, как включить в эту строку wkb. Листы (1).Место назначения вставки:=Листы (1).Диапазон (Ячейки (erow, 1), Ячейки (erow, 15))

Ответ №1:

Синтаксис для вставки special такой .PasteSpecial Paste:=xlPasteFormats .

Вы могли бы реализовать это, изменив свой код на что-то вроде:

 Worksheets(1).Range(Cells(erow, 1), Cells(erow, 15)).PasteSpecial Paste:=xlPasteFormats
  

Однако я все еще не уверен, что вышеописанное сработает, потому что вы закрываете книгу, содержащую скопированные данные, перед вставкой. Я совершенно уверен (непроверенный), что ваш код будет работать, если вы закроете предыдущую книгу после вставки. Лучшее решение — решать вам.