Я пытаюсь выяснить, как пропустить пустые ячейки в таблице для отправки по электронной почте.Таблица составлена по дням месяца и измеряет производительность наших сотрудников.Я хотел бы полностью опустить столбец, если в этой ячейке нет значения при отправке по электронной почте, чтобы таблица не имела длины 30 или 31 столбца.Например, сотрудник работает 14 дней в месяце, поэтому мне нужна таблица, которая показывает только эти 14 дней для отчета об эффективности.
У меня есть общий макрос, который я использую для отправки массовых электронных писем с таблицей,но это то, чего я никогда раньше не делал, и я не уверен, где в сценарии его поставить или где начать.
У меня также есть вопрос о том, правильно ли отображаются таблицы, если электронная почта проверена на мобильном телефоне.,Таблица показывает, но у нее нет границ, как при проверке электронной почты в Outlook.Это не огромный приоритет, и, возможно, его следует задать в отдельном вопросе.
Вот как выглядит таблица, из которой я работаю:
https://imgur.com/a/0z9lLRO
Sub SendEmail(what_address As String, subject_line As String, mail_body As String)
Dim olApp As Outlook.Application
Set olApp = CreateObject("Outlook.Application")
Dim olMail As Outlook.MailItem
Set olMail = olApp.CreateItem(olMailItem)
olMail.To = what_address
olMail.Subject = subject_line
olMail.HTMLbody = mail_body
olMail.Send
End Sub
Sub SendPerformance()
row_number = 3
Do
DoEvents
row_number = row_number + 1
Dim mail_body_message As String
Dim full_name As String
Dim replace_daily_average As String
Dim replace_percentage As String
Dim replace_comparison As String
Dim StrBody As String
full_name = ActiveSheet.Range("A" & row_number)
percent_average = ActiveSheet.Range("AG" & row_number)
comp_difference = ActiveSheet.Range("AH" & row_number)
daily_average = ActiveSheet.Range("B" & row_number)
mail_body_message = Replace(mail_body_message, "replace_name_here", full_name)
mail_body_message = Replace(mail_body_message, "replace_daily_average", daily_average)
mail_body_message = Replace(mail_body_message, "replace_percentage", percent_average)
mail_body_message = Replace(mail_body_message, "replace_comparison", comp_difference)
StrBody = "<html> <head> <style> br, table, table style {width: 300px;height: 315px;border: 1px solid black}, th {bpadding: 1px; border: 1px solid black;alignment: center}, td {bpadding: 3px; border: 1px solid black;alignment: center} </style> <head> <body> <table>"
mail_body_message = "<span style=" & """" & "font-weight: bold;" & "color: #0000ff;" & """" & ActiveSheet.Range("AK4") & ">" & ActiveSheet.Range("AK4") & "<br/><br/>" & "<span style=" & """" & "font-weight: bold;" & "color: #ff0000;" & """" & ActiveSheet.Range("AK5") & ">" & ActiveSheet.Range("AK5") & "<br/><br/>" & "<span style=" & """" & "font-weight: bold;" & "color: #ff0000;" & """" & ActiveSheet.Range("AK6") & ">" & ActiveSheet.Range("AK6") & "<br/><br/>" & StrBody & vbNewLine & _
"<tr>" & _
"<th>" & ActiveSheet.Range("B2") & "</th>" & _
"<th>" & ActiveSheet.Range("B3") & "</th>" & _
"<td>" & daily_average & "</td></tr>" & _
"</table>"
mail_body_message = Replace(mail_body_message, "replace_name_here", full_name)
mail_body_message = Replace(mail_body_message, "replace_daily_average", daily_average)
mail_body_message = Replace(mail_body_message, "replace_percentage", percent_average)
mail_body_message = Replace(mail_body_message, "replace_comparison", comp_difference)
Call SendEmail(ActiveSheet.Range("AI" & row_number), ActiveSheet.Range("AK3"), mail_body_message)
Loop Until row_number = 50
End Sub
Как я хочу, чтобы это выглядело: https://imgur.com/a/mRimK6j
Это похоже на электронную таблицу дней месяца X. Каждая строка - это отдельный сотрудник, и в нем есть только информация.камера в те дни, когда они работали.Таким образом, код, который я использовал, использовался для рассылки расписаний сотрудников.Картинку, которую я связал, скопировав и вставив таблицу в Outlook, а затем удалив пустые столбцы.Кроме того, этот код был сокращен для таблицы, потому что я не знаю, как заставить таблицу отображать только столбцы и строки, в которых есть значения.imgur.com/a/0z9lLRO - Так выглядит электронная таблица.Я хочу опустить ячейки, в которых нет значений.
Таблица может быть вертикальной или горизонтальной, если это имеет смысл.Пожалуйста, дайте мне знать, если есть какая-либо другая информация, которую я могу дать, чтобы помочь!