Похоже, что проблема, с которой я столкнулся, связана с несколькими таблицами на одном листе, и макросу было трудно понять, о какой таблице я имел в виду. На листе две таблицы (одна поверх другой), и мне нужна была вторая таблица, вставленная в тело письма после фильтрации информации, которую я хотел отобразить. Для этого мне пришлось назвать таблицу; в данном случае «Электронная почта» и вызовите его со свойством .ListObjects, которым в данном случае является .ListObjects («Электронная почта»), чтобы макрос понял, на какой таблице я хотел бы сфокусироваться.
Вы можете увидеть обновленный код ниже:
Private Sub CommandButton1_Click()
Dim Sht As Excel.Worksheet
Set Sht = ThisWorkbook.ActiveSheet
Recip = Worksheets("STIF Report").ListObjects("Email").AutoFilter.Range.Offset(1).SpecialCells(xlCellTypeVisible).Cells(1, 6)
Custody = Worksheets("STIF Report").ListObjects("Email").AutoFilter.Range.Offset(2).SpecialCells(xlCellTypeVisible).Cells(1, 5)
Dim rng As Range
Set rng = Sht.Range("B43:D85")
rng.Copy
Dim OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Dim OutMail As Object
Set OutMail = OutApp.CreateItem(0)
Dim vInspector As Object
Set vInspector = OutMail.GetInspector
Dim wEditor As Object
Set wEditor = vInspector.WordEditor
With OutMail
.TO = Recip
.CC = ""
.Subject = "STIF Vehicle Confirmation" & " - " & Custody
.display
wEditor.Paragraphs(1).Range.Text = "Hello All," & Chr(11) & Chr(11) & "I hope this email finds you all doing well." & Chr(11) & Chr(11) & _
"Can you please confirm if the below STIF vehicle details are accurate for the accounts below? If the vehicle has changed, can you please confirm the new STIF vehicle name and CUSIP?" & vbCrLf
wEditor.Paragraphs(2).Range.Paste
End With
End Sub