Я пытаюсь прикрепить тело письма (диапазон Excel), используя процедуру публикации html (внутри функции). Это прекрасно работает, пока я не пытаюсь отформатировать базовый лист из того, что создан HTML-файл.
"###" пометьте важные строки в коде.
В этом фрагменте кода функция запускается (RangetoHTNL (rng)) из основного подпрограммы.
With OutMail
.To = rec
.cc = cc
.BCC = ""
.Subject = "Convertibles - Execution " & cover.Range("D4").Value
.HTMLBody = StrBody & RangetoHTML(rng) '#### Here the function get launched #####
.Attachments.Add (filename)
.Display 'or use .Send
End With
Теперь странно то, что функция работает правильно, пока я не захочу изменить ширину столбца. После этой строки алгоритм «выпрыгивает» из функции и выполняет базовую подпрограмму, не завершая всю функцию в первую очередь.
Найдите ниже фрагмент кода функции, где я делаю некоторое форматирование в листе Excel, который впоследствии должен быть опубликован как HTML.
With TempWB.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial xlPasteValues, , False, False
.Cells(1).PasteSpecial xlPasteFormats, , False, False
row = .Range("A" & Rows.Count).End(xlUp).row
lastcolumn = .Cells(6, Columns.Count).End(xlToLeft).Column
default = .Range(.Cells(6, 1), .Cells(6, lastcolumn)).Width '-> Default width of whole table Range("A:?")
ReDim myArray(row)
For i = 1 To row
myCell = .Cells(i, 1).text
mysize = getLabelPixel(myCell)
myArray(x) = mysize
Next i
Max = WorksheetFunction.Max(myArray)
max_width = Max / con
default_width = default / con
If max_width > default_width Then
prop = max_width / lastcolumn
'####### until here the function is executed. Then it jumps out #######
.Columns("1:" & lastcolumn).Width = prop
.Columns("2:" & lastcolumn).Columns.AutoFit
'###### without these two lines the function is executed properly #####
End If
.Cells(1).Select
Application.CutCopyMode = False
On Error Resume Next
.DrawingObjects.Visible = True
.DrawingObjects.Delete
On Error GoTo 0
End With
Кто-нибудь когда-либо испытывал что-то подобное? Я уже пробовал другие версии кодирования (например, не используя «С» - оператор Statement) - Ничего не помогло.