У меня есть фрагмент кода, который проходит по нескольким листам, копирует указанный диапазон 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
любая помощь будет принята с благодарностью.