Переадресация макроса не работает в Outlook 2013

Я автоматически пересылаю все сообщения в папке, в которой я запускал этот макрос. Я обновился вчера до 2013, и он не работает. Я искал используемые команды и не смог найти ни одной из тех, которые я использую, не распознаваемых в Outlook 2013.

Sub ChangeSubjectForward(Item As Outlook.MailItem)
Item.Subject = "TAG NUMBER1234" & Item.Subject
Item.Save

Set myForward = Item.Forward
myForward.Recipients.Add "[email protected]"

myForward.Send
End Sub

person Greg D    schedule 13.03.2015    source источник
comment
Может быть, та же проблема, что и в?: stackoverflow.com/questions/30619881/   -  person BerndGit    schedule 09.06.2015


Ответы (2)


Ваш код выглядит хорошо, я не вижу ничего странного в коде. Похоже, вам нужно создать правило и назначить выполнение макроса VBA.

person Eugene Astafiev    schedule 13.03.2015
comment
Спасибо. У меня все настроено и назначено ему. Он работает хорошо, без ошибок, но на самом деле ничего не пересылает. Я добавил к нему еще одно действие, присвоив ему категорию, и оно сработало, поэтому я предполагаю, что проблема связана с VBA i.imgur.com/oGkgDk9.png - person Greg D; 13.03.2015
comment
Я только что изменил настройки безопасности, разрешил все макросы и понизил все остальные параметры безопасности. Когда я запускаю правило, оно по-прежнему не пересылает сообщения в папку. Цените чью-либо помощь. - person Greg D; 16.03.2015

Некоторые вопросы:

Каковы ваши настройки правил, которые запускают это? Вы вручную запускаете правило для папки или правило автоматически запускается по триггеру? Вы получаете сообщения об ошибках?

Попробуйте следующее:

Убедитесь, что правило, которое запускает ваш макрос автопересылки, находится ниже в списке правил, чем правило, которое сохраняет сообщения в этой подпапке (если вы ее используете).

Кроме того, поскольку я не знаю, что именно запускает ваш макрос, возможно, он останавливается, когда сталкивается с объектом, отличным от MailItem. Попробуйте это изменение:

Sub ChangeSubjectForward(olObj As Object)

dim Item As Outlook.MailItem

If olObj.Class <> olMail Then 'Making sure it is an email message
    msgbox("Object Was Not MailItem")
    Exit Sub
End If

Set Item = olObj

Item.Subject = "TAG NUMBER1234" & Item.Subject
Item.Save

Set myForward = Item.Forward
myForward.Recipients.Add "[email protected]"

myForward.Send
End Sub

Если вы продолжаете получать сообщение «Объект не был MailItem», значит, в вашу подпрограмму передаются неправильные объекты.

person Trashman    schedule 08.04.2015