#excel #vba
Вопрос:
Я пишу макрос для отправки нескольких электронных писем, которые настраиваются на основе требуемых данных.
Например:
Subject: <name>, Thank you for visiting <store>
На данный момент я могу только тянуть, но я понятия не имею , как также добавить, чтобы «Контент» был у них обоих.
Content = Replace(msg.Subject, "<name>", first_name " " last_Name)
Replace(msg.Subject, "<store>", store_name)
^ по сути, я хочу объединить оба из них, чтобы макрос вытянул оба.
Комментарии:
1. Добро пожаловать в SO! Не могли бы вы показать нам, что вы пробовали. Stackoerflow это не бесплатный развивающийся источник, вы должны показать свои усилия и то, куда вы попали.
Ответ №1:
Вы можете сделать это в несколько этапов:
Content = Replace(msg.Subject, "<name>", first_name " " last_Name)
Content = Replace(Content, "<store>", store_name)
Или вы могли бы вложить свои операторы замены:
Content = Replace(Replace(msg.Subject, "<name>", first_name " " last_Name), "<store>", store_name)
Если бы у вас оказалось большое количество токенов для замены (или постоянно растущее их динамическое количество), вы могли бы пофантазировать и перебрать строку, чтобы идентифицировать токены и поменять их местами внутри цикла, но здесь это было бы излишним.
Комментарии:
1. Первый вариант не работает, так как второй контент заменяет первый (это было первое, что я попробовал). Но вложенность работает отлично, спасибо!
2. Первый и второй функционально идентичны. Обратите внимание, что я поместил
Content
переменную во вторуюReplace
, чтобы убедиться, что обе замены происходят в исходной строке. Первый гораздо проще для чтения, и если вы получите более нескольких токенов для замены, это будет более удобный маршрут. Рад слышать, что второе работает на вас![]()