Скопируйте все форматирование с одного листа на другой, используя VBA - PullRequest
1 голос
/ 05 июля 2019

Я использую следующий код для копирования значения с одного листа на другой

Lastrow = WAEnv.Cells(Rows.Count, 1).End(xlUp).Row
Xrow = 1

lcol = Cells(3, Columns.Count).End(xlToLeft).Column
vArr = Split(Cells(1, lcol).Address(True, False), "$")

Debug.Print Xrow
For Rw = 3 To Lastrow
    Set Rng = WAEnv.Range("A" & Rw & ":" & vArr(0) & Rw)

    If Rng(1, 1).Value > 0 Then
        ReDim Preserve DstArr(1 To lcol, 1 To Xrow)
        Xcol = 1

        For Each cl In Rng.Columns.Cells
            DstArr(Xcol, Xrow) = cl.Value
            Xcol = Xcol + 1
        Next cl

        WAPatch.Cells(Xrow, 1).RowHeight = Rng(1, 1).RowHeight
        Xrow = Xrow + 1
    End If
Next Rw

WAPatch.Range("A3").Resize(UBound(DstArr, 2), UBound(DstArr, 1)).Formula = Application.Transpose(DstArr)

Я уже знаю, что могу использовать для cpy все форматирование, но приведенный ниже код очень медленный, поэтому я использую вышеупомянутый метод массива.

WAEnv.Cells(i, j).Copy
WAPatch.Cells(ro, j).PasteSpecial Paste:=xlPasteAll

Что я ищу, если есть способ скопировать и вставить все форматирование с одного листа на другой, используя метод массива, который я использовал?

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