Pastespecial перестает работать при превышении определенного количества строк - PullRequest
0 голосов
/ 28 января 2020

У меня есть фрагмент кода, который проходит по нескольким листам, копирует указанный диапазон c данных во временную рабочую книгу для ввода в электронное письмо с помощью функции rangeto HTML Рона де Брейна - код работает Однако в большинстве случаев, когда диапазон содержит более 25-30 строк, он копирует данные, но не форматирует

Диапазон задается с помощью следующего кода:

eMax = ThisWorkbook.ActiveSheet.UsedRange.Rows.Count
Set rng = ThisWorkbook.ActiveSheet.Range("A1:G" & eMax).SpecialCells(xlCellTypeVisible)

Затем выполняется копирование делается следующим образом:

Function rangetoHTML(rng As Range)

    Dim fso As Object
    Dim ts As Object
    Dim TempFile As String
    Dim TempWB As Workbook

    TempFile = Environ$("temp") & "\" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"

    rng.Copy

    Set TempWB = Workbooks.Add(1)
    With TempWB.Sheets(1)
        .Cells(1).PasteSpecial Paste:=8 'paste column widths
        .Cells(1).PasteSpecial xlPasteAll ' paste all formatting
        .Cells(1).Select
        Application.CutCopyMode = False
        On Error Resume Next
        .DrawingObjects.Visible = True
        .DrawingObjects.Delete
        On Error GoTo 0
    End With

Я пытался изменить перечисление pastespecial на xlpasteformatting и xlpasteallusingsourcetheme

любая помощь будет принята с благодарностью.

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