Я бы обязательно разбил ту огромную стену текста, которая у тебя есть. Это можно сделать с помощью al oop.
. Давайте использовать For
l oop.
Dim concatString as String
For i = 10 To 18
If Not Cells(i, "A").Text = vbNullString Then
'Add to growing string
concatString = concatString + Cells(i, "A").Text & ", " & Cells(i, "B").Text & vbCr
concatString = concatString + "Assignment/Zone: " & Cells(i, "C").Text & vbCr
End If
Next i
Если столбец A содержит пустую строку, мы пропускаем ее и перейти к следующему ряду.
Я опубликовал это, прежде чем вы добавили больше кода, но я думаю, вы поняли идею. Разбейте огромный кусок кода и поместите только один цикл через столбцы A, B и C в l oop. При необходимости измените ограничения l oop.
Вот как это будет выглядеть в вашем коде:
'...
'your code here
'...
Dim concatString as String
For i = 10 To 18
If Not Cells(i, "A").Text = vbNullString Then
'Add to growing string
concatString = concatString + Cells(i, "A").Text & ", " & Cells(i, "B").Text & vbCr
concatString = concatString + "Assignment/Zone: " & Cells(i, "C").Text & vbCr
End If
Next i
myMail.Body = Range("B2") & " Shift" & " - " & Format(Date, "mmmm dd, yyyy") _
& vbNewLine & vbNewLine & "Sergeant: " & Range("A6") & ", " & Range("B6") & vbNewLine & " Status: " & Range("C6") _
& vbNewLine & vbNewLine & "Corporal: " & Range("A8") & ", " & Range("B8") & vbNewLine & " Status: " & Range("C8") _
& vbNewLine & vbNewLine & "Assigned Deputies" & vbNewLine & vbNewLine & concatString
Я удалил все эти лишние пробелы, не уверенный, действительно ли они вам нужны там или если это пережиток копирования / вставки из VBE.