Если по
Как мне получить мой код VBA для отправки электронного письма с экспортированным графиком на все, что находится в столбце 2?
Вы имеете в виду, что у вас есть электронная почтаадреса, хранящиеся в столбце 2, к которым вам нужно обращаться при каждой итерации для отправки экспортированного графика, вы можете изменить эту строку
.To = "test@email.com"
на
.To = Cells(email.Row, 2) '<-Make sure to qualify this range with whatever worksheet you're pulling from
В связи с вашей проблемой с электронной почтойгенерируется только один раз, вам нужно переместиться
Set olMail = olApp.createitem(i) '<- you can change `i` to `0`
в начало вашего цикла For-Next
и установить его = Nothing
в конце, как
For Each email In book.Rows
Set olMail = olApp.createitem(0)
'Do Stuff
Set olMail = Nothing
Next email
Таким образом,новое письмо генерируется при каждой итерации.
РЕДАКТИРОВАТЬ:
Вы, вероятно, можете избавиться от этой строки
Sheets("nothing").Range("B1").Select
И заменить
ActiveCell.FormulaR1C1 = p
С
Sheets("nothing").Range("B1").FormulaR1C1 = p
Поскольку вы работаете с несколькими листами и .Activate
функциями, я бы рекомендовал квалифицировать все ваших диапазонов.